Nick Advocates Open Source Unit Testing

If you aren’t subscribed to the delphi feeds or Nick Hodges blog you may not have noticed his recent post proposing that EMBT open source their unit tests.  If not, do yourself a favour and subscribe…

I blogged some time ago about EMBT needing to increase their leverage of open source like Apple and other IT companies, so it comes as a nice surprise that someone who has seen behind the corporate veil advocates a similar move to what I have previously recommended.

While I would agree with Nick’s premise that EMBT should make some Delphi source code open source, I’m afraid I can’t see it happening for several reasons:

1) Logistics/Resources.  As Nick concedes, resources would be necessary to act as GateKeepers for the project source.  Finding trusted gatekeepers with the time and willingness to participate on an on-going basis can be challenging.  If there is no compensation involved, and no corporate sponsorship in the form of donated developer time etc, it’s hard to keep a project alive. Even with gatekeepers, EMBT resources would be required, and they don’t seem to have any available cycles, or the benefits do not appear tangible enough to management.

2) Historical adversity to open source

While EMBT may be a different company from Borland, they have many of the same principal people and therefore share a similar perspective concerning open source projects.  Based on their closing of the open source PNG project after they integrated the code into Delphi, and the open sourcing of Interbase 6, I would have conclude they view open source as competition, not as an opportunity.  Interbase apparently only has one engineer left on the TEAM (is that expression “there is no “i” in TEAM” or “no ‘1′ in TEAM”…hard to tell sometimes).   Despite having resource issues, and Interbase accounting for (I believe) a small portion of their revenue, it remains a forked project from the IB6 source code, instead of being built in concert with Firebird.  Perhaps that is no longer possible since the fork took place so long ago, but EMBT has not decided to open source the current version of Interbase either.  Perhaps they view IB for iOS as a strategic product now.

3) Risking IP

While units of the RTL and VCL are included with some versions of the product, some source units have always been missing AFAIK in order to keep the RTL and VCL from being compilable, and all of that IP (intellectual property) from being “known”.

4) Accepting Constructive Criticism

EMBT is just not that receptive to having staff interact with customers and accept customer code contributions and criticism of EMBT code, policy, or implementations.  All you have to do is look at the evolution of FireMonkey, or in QC to see how well EMBT accepts and addresses customer criticisms of either their code, or implementations.

To write tests properly you need to have access to their code and any accompanying documentation.  EMBT is not about to open up access to anyone, otherwise DelphiSpeedUp would not be a necessary project, and the issues that Andreas has found and fixed would be immediately incorporated into the product and an official service pack would be released.  DelphiSpeedUp would not have to support multiple EMBT product releases with much of the same fixes.

Even open sourcing the IDE would be a good move.  There are bugs from eons ago in QC, some of which have been accepted into the internal bug tracking tool, that remain unaddressed.  The result is that we have code completion that produces uncompilable code, code navigation that is practically non-existent when compared to other IDEs, and multiple parsers for error insight, code completion etc, stalling the IDE’s main thread.  Not to mention all the missing re-factoring capabilities, code templating, clip board management etc that were available in CodeRush in Delphi 3 era, and now are only available in third party enhancements like Castalia, or in half baked form.  Why?  In part because Borland didn’t work with Mark Miller, the GExperts group and other customers to foster an ecosystem for IDE add-ins.  EMBT has continued this tradition and as a result, the IDE has fallen behind, just like DBX did.  Perhaps EMBT will buy another editor to try to catch up, but that didn’t work out so well last time.

A new developer’s first impression is the IDE, and it needs a lot of work compared to it’s peers.  The IDE is hardly EMBTs core IP, so it’s a natural one to leverage open source with.  The community has also shown with SynEdit that it could and would both use and extend such an offering.  Open sourcing the IDE would yield a much better result IMHO than anything else, but you don’t see EMBT doing so despite what I would call the success of leveraging the FastCode, and PNG projects, or the efforts of Andreas Hausladen.

5) Open Source is about giving back

To date, EMBT’s usage of open source seems to be about taking what they can get from open source, whether it be using Hudson internally for CI, or PNG, FastCode source code without apparently much in the way of giving back.  It still baffles me, that FPC was used in XE2 for iOS support, but I didn’t hear of any EMBT contributions back to the project, and there didn’t seem to be any fan fare in the product press release.  I couldn’t find a single reference to FreePascal, just “FireMonkey also enables Delphi XE2 users to create native HD and 3D applications for mobile (iOS) devices”.  Apparently a compiler was not necessary for iOS support.

Certainly one of the few contributions I am aware of, as a follower of Delphi, is their recent release of LLDB code.  The whole idea of open source is building a synergistic community and that requires contributions from all participants in a constructive fashion.

While progressive companies like Google, and Apple are leveraging open source projects in the commercial offerings while contributing to the evolution of those projects, EMBT still seems to be struggling to determine a strategy to do so.  One of the best things about Delphi is its community with the knowledge and experience they possess.  So far that has been pretty much untapped by EMBT.

6 Responses to “Nick Advocates Open Source Unit Testing”

  1. Chris Says:

    ‘Based on their closing of the open source PNG project…’

    The TPNGObject code didn’t have an ‘open source’ licence strictly speaking. While having the existing code taken down was a bit dubious, I’d rather knock them for the fact the code wasn’t cleaned up and improved after being added to the VCL - they couldn’t even be arsed to remove now-irrelevant IFDEFs.

    ‘EMBT is just not that receptive to having staff interact with customers and accept customer code contributions and criticism of EMBT code, policy, or implementations. All you have to do is look at the evolution of FireMonkey, or in QC to see how well EMBT accepts and addresses customer criticisms of either their code, or implementations.’

    With specific cases, my personal experience has actually been the opposite - I posted a suggested reimplementation of TControl.Controls in FMX, which got implemented; I also posted a suggested improvement to updating menu item states on OS X, and that also got implemented. The main issue with FMX is the obvious one - it was rushed at the outset, and has been rushed ever since, not helped by having people work on it who are not experienced Delphi developers.

    ‘Even open sourcing the IDE would be a good move.’

    I don’t understand why you see open sourcing as some kind of magic bullet - it would be the death of any further development of the IDE.

    ‘Borland didn’t work with Mark Miller, the GExperts group and other customers to foster an ecosystem for IDE add-ins’

    The opportunity cost seems very high to me. Time spent making the IDE the most pluggable, extensible ever would be much better spent on other things, e.g. improving the language, which if you are looking back to the Borland days was static between D4 and a few frequently half-baked .NET-isms added in D2006.

    ‘It still baffles me, that FPC was used in XE2 for iOS support, but I didn’t heard of any EMBT contributions back to the project, and there didn’t seem to be any fan fare in the product press release.’

    I don’t find it ‘baffling’ at all. Using FPC - or more exactly, putting out the pre-existing VGScene FPC-based iOS support under EMBT branding - was always the blatant stopgap measure it proved to be.

  2. LDS Says:

    ” increase their leverage of open source like Apple and other IT companies”.
    Too many still fail to understand that Apple is not a software company. Apple is an hardware company that also found a way to extort a 30% fee on every software running on its mobile hardware. The less it spends on software development, the better. Same for Google, it is a data collecting and reselling company, it just needs to find a way to collect as much data as it can at the lowest price. None of them makes money selling software.
    But what is Embarcadero? It is a development tools company. As soon as it builds its tools on open source software, it’s no longer an ISV, it’s just a VAR - why should people buy their tools then? The less Emb develops, the more it relies on software built elsewhere, the less competitive and the less appealing it becomes. It would become strongly tied to someone else agenda - because it has no enough “mass” to drive projects much larger than Emb itself…

  3. Sebastian Jänicke Says:

    “The TPNGObject code didn’t have an ‘open source’ licence strictly speaking.”
    Well, the first paragraph of the license for example said:
    “This component may be distributed freely over the internet only when containing the exact same files from the original packaging. …”.

    But after purchasing PNG Image Embarcadero disallowed to publish it anymore. So they nullified the license (or tried so) at least in this part though they (Nick Hodges in particular in his blog) denied this.

  4. Larry Hengen Says:

    @Chris,

    I am glad to hear your FMX suggestion was heard and acted upon. My statement concerning FMX was actually based largely on information from your blog since you have “deep dived” FMX and I have not. I was under the impression that FMX code quality was still low, and bad implementations had remained unchanged. Menuing comes to mind. I have also read issues concerning rendering speed. I would love to hear your opinion of FMX (privately if necessary).

  5. Inside Embarcadero Says:

    Embarcadero will never open source anything related to Delphi, there are people here against that, the same people that was in Borland before.

    What they wanna is use as many free and open source stuff as possible to make more profit, having our Delphi engineer team reduced 50% make that worse, we can develop everything customers ask for, the management decision is to incorporate free and open source stuff, even if this is not a value for our customer.

    You see that in the product today, and you will see in Delphi XE5, which will be released in early September, and will include the Android support, which so far is not very good.

  6. Markus Ja Says:

    @Inside Embarcadero
    Are there any improvements in FMX performance?

Leave a Reply