I love open source code. I love the notion of sharing and working together for the betterment of a community. I love the free stuff that I can use because of the generosity of open source developers.
Open source development often can be bogged down by licensing decisions. I don’t know how many bits have been spilled arguing over the exact meaning the Lesser GNU Public License (LGPL), or whether the GNU Public License (GPL) is one step away from a socialist worker’s paradise or not, but surely it’s a lot of bits.
Well, I’m going to spill a few more.
I totally get the GPL – I respect it, and I laud the folks that do work on GPL-based projects. They are really giving away for free (as in speech) their work to others. Linux exists because of the GPL. I get why the license exists. I understand the whole “Free Beer/Free Speech” thing. Some amazing, awesome things exist because of the GPL. It’s all good.
The GPL is completely incompatible with commercial software. Totally, utterly, and completely incompatible. If you use GPL source code in your commercial application, you are obligated to release your entire application as a GPL Open Source project. Everything. Obviously, if you sell your software, you very likely don’t want to do that. (I recognize that there are folks that will, and more power to them…..).
Now, Delphi is a development tool used by a whole lot of businesses – businesses that are likely not to want to make their source code available under the GPL. And so open source projects that are aimed at Delphi developers make a very limiting decision if they release their code under the GPL. A Delphi library of code with the GPL attached to it will severely limit the number of Delphi users that can or will use that library.
Many of the popular open source libraries for Delphi use a much less restrictive license. All the Turbopower code was released under the Mozilla Public License (MPL) which is much less restrictive, only requiring you to share any changes you make to the MPL project itself. Others use the Apache License which is very permissive. But some do use the GPL.
Now, I’m going to give some advice to those folks who publish Delphi source code under the GPL: Issue it under an alternative license – one that businesses can handle. I’d recommend MPL at the most strict end of the spectrum. We are going to start using the Delphi Spring Framework, and that is licensed under the very friendly Apache license. I’d love to use the Emballo framework as well – particularly for the Mock object classes, but it is licensed under the GPL, and so we really can’t touch it. A project like the Emballo project is also available for use under the LGPL and worth considering.
The GPL is great – it works well in the Linux world and where other open source development tools reign supreme. But for more commercial-based eco-systems like Delphi, a business-friendly license is much more in order.