Finally, someone said it. There is a huge problem in the IT industry today, namely businesses using open source frameworks and making huge revenues, without a cent going to the authors of those frameworks. Rich Green of Sun likens it to “Robin Hood backwards”.
Talking about open source licensing in general, and GPL in particular, is treacherous. There are so many urban myths and almost religious opinions surrounding it. Therefore I have tried to include footnotes pointing to the GPL FAQ or other relevant sources. Please read them before commenting or deciding that you hating me.
Where I come from
I’ve worked in the IT industry as a web application developer and nowadays I’m a freelance web developer. In each and every project I have been involved in there has been at least one open source component, and in most the whole foundations have been open source, everything from web and database server software, frameworks, source management tools, building tools, compilers, editors, IDE:s, etc. All of it has been free (in both senses) and combined it has saved me or the companies I’ve worked enourmous amounts of money. To be fair, much of benefit has been shorter development times, so even if all that software was payed for it would still generate savings.
I have also developed some open source frameworks (for Cocoa and Ajax, but nothing that is relevant anymore) so I’ve been on both sides of the problem.
The reverse Robin Hood effect is relevant to open source in general, but particularly, it seems to me, to frameworks and libraries. Server software, tools and IDE:s are not as affected. The reasons for this will become clear in the discussion below.
The problem and its cause
The problem lies in a loophole in the open source licensing model. Basically, you can license your code under a permissive license which lets anyone use your code, but your code will always remain open, or you can use GPL style licenses, which requires any modifications or aggregate versions of your code to also be released under the GPL. If you choose the former version you will never be compensated if someone makes money from a piece of software that uses your code so it is perhaps not relevant to talk of a loophole since it built-in. If you choose the latter verison of licensing you have more control over what happens to aggregates and modifications, however, since the GPL only covers distribution of software, it all breaks down. If someone uses your code, for example a framework you have created and released under the GPL, but never distribute it, they don’t have to comply with the GPL 1. If you think of how web applications work, you quickly realise that the GPL has been completely sidestepped.
The GPL is very good for traditional software that is installed on each users own computer, because as the author of a piece of software you are guaranteed to get compensation for your work, in some what or another. Let me explain what I mean; if someone wants to modify your application or include your code into another applicaton they have two choices: either they release the modified or aggregate code for the new application under the GPL, or they don’t like that idea and ask you for a version of your code that is not covered by the GPL (which you have every right to give them providing you are the copyright owner).
In the first scenario you get compensation in the form of satisfaction that more code has been released as open source, and for most open source developers this is a goal in itself, it is probably the reason why they went open source to begin with, they want code to be open source and the more the better. The second scenario gives the author compensation in the form of money, or some other arrangement that benefits the author. This is more or less the usual way of doing things: I have done some work, if you want a copy you have to pay me what I ask for it.
Quid pro quod
There are examples of companies that base their business model on this scheme, the first one I came across was MySQL, and I’m a huge admirerer of their licensing policy. I think it’s brilliant in that it sidesteps many of the issues of GPL2 but without giving away all your rights as you do with BSD-style licenses3 but still being fair.
But when it comes to web applications it doesn’t work. Since web applications are not distributed but mostly developed in-house, the GPL doesn’t apply and there is no way for the author to get compensation. And as we have seen above, when it comes to other licenses the problem is the same (even though it’s more clear to beging with, as the author has already waived most rights4).
Many companies use this loophole, and Google is probably the worst offender. Technically they don’t do anything wrong, but in reality they get a whole lot for free without the original authors geting any compensation.
Wait a minute, why can’t you let developers decide for themselves?
A valid objection at this point is that it seems that everyone are quite happy with all this. It’s not as if you hear programmers crying foul over “stolen code” very often, and should they it’s their own fault to begin with since they released their code under such permissive terms.
I agree with that, and I think that it’s up to each and everyone to understand and take the consequences for their actions. We should expect companies to use every loophole they can to maximise profit, because that is in their nature5. It does not mean that the system is right, though.
I’m not against people giving away what they have created for free, but that the corporations use this to profit. I hope you see what I mean by that. I’m absolutely horrified that the developers of large and higly innovative frameworks let corporations use them without demanding compensation. I’m as horrified about that as I’m happy that the same frameworks are open source and available to me, as an open source developer, I should add. And I do use the same framework in my commercial work, without paying a cent. I’m ashamed of this, and I have donated money to some projects, although not to an extent that mitigates my shame.
I’m not really sure what I would like to be done about this problem. I would like to see other open source developers use less permissive licenses, but that is really up to them. By releasing open source frameworks effectively free of charge they foster the idea that frameworks are free (of charge) and should be free. I have personally been asked to lessen the restrictions of a framework of mine, and when I declined I was met with rather harsh words about being greedy (not the exact words, but that was the meaning). All I did was to point out that unless I got something out of it I wasn’t interested in changing my policy, and pointing to MySQL as an example.
There are some ways out of this, the problem is well known. For example, a company called Affero has created a version of GPL called Affero GPL, which adds a special clause requiring web applications (and similar kinds of applications) to comply with the GPL by saying that making the application available across a network is the same as distribution 6. There has also been talk about GPL v3 containing something similar.
There is also, of course, the option of not going open source, but for many that is not an option. I’m undecided about this. In my line of work, web development, almost every piece of code I use is never distributed, but runs in one instance on one web site. I like the idea of open source, and I know I have benefited a lot from the community so it would only be fair to give something back. However, knowing that if it gets used at all it will likely be in a closed source application speaks against releasing anything. I do have some ActionScript frameworks that I use myself that I would like for others to try out, but if I release them it will likely be as closed source and with a license forbidding any commercial use.
1. “The GPL permits anyone to make a modified version and use it without ever distributing it to others. What this company is doing is a special case of that. Therefore, the company does not have to release the modified sources.” See http://www.gnu.org/licenses/gpl-faq.html#TOCUnreleasedMods 2. E.g. the viral nature of GPL which means that many projects won’t or can’t touch GPL code. 3. That’s not a completely fair description of BSD-style licenses, I know. 4. For BSD, Apache and other licenses that don’t require modifed or aggregate versions to be completely open source, i.e. licenses that are not viral, the authors actually sign away any possibility of compensation to start with. I guess they do it for the benefit of the community and either get compensation in satisfaction, payment for actually writing the code in the first place (it’s not uncommon for companies to hire programmers to contribute to open source projects), or for supporting it. It should be said that the authors still have the copyright to their work (provided they haven’t sold it or transferred it in some other way). In fact, without copyright you can’t license anything. 5. See http://www.thecorporation.com/ 6. “If the Program as you received it is intended to interact with users through a computer network and if, in the version you received, any user interacting with the Program was given the opportunity to request transmission to that user of the Program’s complete source code, you must not remove that facility from your modified version of the Program or work based on the Program, and must offer an equivalent opportunity for all users interacting with your Program through a computer network to request immediate transmission by HTTP of the complete source code of your modified version or other derivative work.” See http://www.affero.org/oagpl.html.