Open Source Take 2

CJH made some valid points about my last article.

I guess I really wasn’t that clear on how my story showed the benefits of Open Source.  Let me attempt to rectify that.

Open Source can mean different things.  You can read most of the VCL source, and that has numerous benefits that could not be achieved otherwise.  The VCL source is a kind of restricted open source since the EULA restricts you from doing all that much with it.  It’s still very useful in that you can find out what method to override to achieve the desired functionality, or find a more efficient algorithm.  You’re not reliant on documentation that can be grossly incomplete or incorrect.  Nothing is better at teaching you how to code, than reading good code, and if it makes it into a commercial release it should be good right?  Well perhaps not as good as it could be, because how else would you ever be able to get over an order of magnitude of a performance gain.  So point #1 is that without the ability to read the RTL/VCL source an add-in like DelphiSpeedUp would have been more difficult to craft.

I have collected many Delphi books over the years, and some of them like the “Hidden Paths of Delphi 3″ by Ray Lischner really opened up the Open Tools API.  Information collected by experimentation, talking to Borland engineers, and no doubt reverse engineering that was shared within the community helped make the IDE a platform for innovation.  Out of that information came products like CodeRush and Castalia.  Open Source projects like GExperts, CN-Pack produced add-ins that provide functionality that should be part of the commercial offering.  So point #2 is that EMB should recognize the benefits that Open Source has brought to developers who use their product, and facilitate these projects/products so they can thrive, and integrate better with the IDE or toolset.  CodeGear started down this path by making FastMM4 the default memory manager, but there is so much more than could be done.  This might involve shipping with, and being part of the native Delphi install.  This might mean having their own open source hosting service for Delphi projects.  If it makes sense for RemObject or Gurock software why not EMB?  What about dedicated people to work on open source projects and incorporate the results into the VCL?

Point #3 is that  having the VCL source code likely prompted some of the Delphi developers to read it and say “we can do better”, leading to projects like FastMM4, FastCode and KOL.  Delphi Speedup leverages the FastCode project to do it’s magic.

It would be nice if EMB would open up more areas, and accept contributions directly from the community, but I don’t see how that is possible unless they entertain a free version.  Not too many people run Darwin on their Mac, and no one will contribute code for free and allow someone else to benefit financially from it without giving back.

That was the whole point I was trying to make (albeit indirectly).  I think EMB needs to open source the compiler leveraging LLVM (look at Apple’s XCode 4), standardize and publish the language specification for all to use, and open up the IDE so tools like Castalia, and GExperts don’t have to implement their own code parser.

Borland realized some of the benefits of Open Source by releasing most of the VCL source code.  It didn’t hurt their business. Even Firebird helped increase the number of developers using the technology, and when they wanted features like SMP support and wire encryption, they turned to Interbase.  Developers are a unique audience when it comes to Open Source.  We can actually contribute in a meaningful fashion, and EMB doesn’t have the resources or time they need to hit the necessary targets.  If EMB wants to see Delphi everywhere they are going to have to compete with Apple’s XCode 4, and provide a 64 bit compiler ASAP.  I think they can use all the help they can get, and that makes Open Source more appealing than ever.

8 Responses to “Open Source Take 2”

  1. Chris Says:

    “CodeGear started down this path by making FastMM4 the default memory manager, but there is so much more than could be done.”

    A counter-example: Indy. Not because Indy isn’t great as a standalone open source project, but because certain things about it that are OK in OpenSourceland make for a crap user experience when bundled as part of a commercial product - thinking in particular of instability of the API, and how the release of stable versions hasn’t aligned with the release of new versions of Delphi itself. Having to go and download the latest Indy version from a relatively obscure website just to get things working, and moreover, from a wesbite that repeatedly tells you the current version is ‘work in progress’, doesn’t help encourage the idea of Delphi being a quality product.

    As I said, this isn’t to knock the Indy project when considered on ‘Open Source’ terms - but a commercial product like Delphi/RADStudio cannot live according to ‘Open Source’ norms, for better or for worse.

    “I think EMB needs to open source the compiler leveraging LLVM”

    Maybe, but dropping your own compiler backends for a third party one is hardly a minor undertaking. How exactly is moving to LLVM supposed to cohere with “provid[ing] a 64 bit compiler ASAP”? All good things usually don’t go together you know…

  2. Larry Hengen Says:

    I agree that Indy has left a bit of a bitter taste in the mouths of many developers. This is because Indy10 introduced support for .NET and in the process many instabilities and bugs were introduced. I personally always tried to stick with the latest 9.X builds to avoid the pain.

    To me, Indy exposes two problems:
    1) Borland ignored the gaps in the VCL for too long. Specifically the Internet. While Microsoft was coming out with slogans like “the network is the computer” Borland had two socket components that didn’t even use Overlapped I/O. Perhaps they expected vendors to fill in the gaps, but at some point the product suffers if it doesn’t have “core” functionality.

    2) Any company that adopts Open Source, or a third party product as part of their core offerings has to ensure quality. That means contributing to the project by providing money, engineers and QA people. Borland didn’t. Just like they didn’t with RAVE or QuickReports. It’s unfortunate that they never learned from their mistakes.

    I disagree that a commercial product cannot live according to Open Source Terms. I think Apple is showing how it can be done.

    As for using LLVM, this might further delay the delivery of the compiler, if EMB engineers ignored the advantages of using LLVM. Apple was talking about the importance of LLVM at WWDC 2008. If EMB isn’t watching the trends in technology then Delphi will certainly go the way of the dinosaurs…

  3. cjrh Says:

    +1. I fully agree that the open-source nature of the VCL was and still is a major benefit to the product. That was so even before the term open-source was hardly talked about, and even though it wasn’t of the GPL-variety, the mere fact that developers could read the source as written by the gurus at Borland was excellent education, and aided the reporting of IDE and compiler bugs.

    As a counter-counter example to Indy, I would offer Lazarus and FPC. Besides the obvious and oft-mentioned lack of “finish” compared to the Delphi product, it is admittedly quite thrilling to identify a bug, even a minor one such as a misplaced GUI element, and be able to submit a patch and have it merged into trunk in a day or two (this really happens). I mean, compare this to logging a bug into QC and waiting several years: there is no comparison.

    Lazarus is one of those open-source projects that does not suffer from economic considerations because there is zero economic pressure on it to do so. It will just slowly improve all the time. Even now, with Linux support and x64 support and WinCE support, it is becoming a disturbingly compelling alternative to the superior Delphi IDE—while Embarcadero spends its time doing Delphi for the Mac. And a huge difference is that I can fix lazarus bugs if they irk me, while I must subject myself to mercy of the Delphi release schedule.

    Open-source has insignificant benefit to end-users; but for developers, there are some compelling strengths to the model.

  4. Jeroen Pluimers Says:

    @Larry: actually “the network is the computer” came from Sun and is attributed to http://en.wikipedia.org/wiki/John_Gage (one of the earliest employees at Sun).

    That phrase was way ahead of it’s time; only now recently the internet and cloud computing have reached the point it is becoming a reality.

    –jeroen

  5. Chris Says:

    @Larry — “I disagree that a commercial product cannot live according to Open Source Terms. I think Apple is showing how it can be done.”

    That made me splutter! How exactly do Apple products (or for that matter Google ones) that leverage open source ‘live according to open source terms’? For their own end users, any open source base is at best ’seen and not heard’, open source culture not being something they have to understand, let alone accept (from her own POV, the average Mac user knows only OSX, not Darwin or whatever). The end user of Delphi, in contrast, *has* to live according to open source norms if he or she is to use Indy successfully. (For this reason, I personally find it dubious to refer to the bundling of the VCL source as an ‘Open Source’ act in the modern sense, though for sure, it doesn’t cleanly fit into what Open Source advocates stereotype as the ‘close source’ model either.)

    “As for using LLVM, this might further delay the delivery of the compiler, if EMB engineers ignored the advantages of using LLVM.”

    And what if Barry Kelly and co perceived certain *disadavantages* of using it? You seem to be working on the assumption that if an open source project exists and is a success on its own terms, then it’s a no brainer for Embarcadero to leverage it if it can. I would say, in contrast, that it should be be evaluated in exactly the same way as Embarcadero might weigh up buying in outside proprietary technology. Cf. how last time around, Borland decided to buy in a 32 bit Pascal compiler; maybe this time, the pros and cons have just weighed up in favour of developing a new 64 it compiler in house instead.

  6. PMP Project Management Says:

    Love the post!. I was searching for PMP Management articles when I found this article on Bing. This is exactly what I was looking for. I’ve bookmarked this post for future reference :-) Nice post - Thanks Lisa

  7. Some links on the Delphi compiler and the LLVM Compiler Infrastructure Project « The Wiert Corner – irregular stream of Wiert stuff Says:

    [...] TPersistent.com » Blog Archive » Open Source Take 2. [...]

  8. TPersistent.com » Blog Archive » Nick Advocates Open Source Unit Testing Says:

    [...] blogged some time ago about EMBT needing to increase their leverage of open source like Apple and other IT [...]

Leave a Reply