Open Source Take 2
Monday, June 28th, 2010CJH 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.