Tuesday, February 16, 2010

GPL is not Open Source

Developers of free software that want it to be useful should not use the GPL license. GPL has outlived its value in Open Source. Sadly, GPL is so common that many people associate it with the very term "Open Source". It has come time to put GPL to rest for the good.

Background:
GPL is a software license. It is a license so confusing that the country's top lawyers cannot even agree on what it means. However, the intent is to say that the software is free under certain conditions.
  1. Free if the software is not redistributed. For example, is used in house and not resold "as software." Reselling as a service is allowed so long as the software itself does not change hands.
  2. Free if used in software that is itself free. This is the viral nature of this license since if software includes GPL software, then using the same license is easy.
What is specifically singled out is for-profit software. Software with other licenses containing GPL software is a very gray area. The situation is so bad that some software is dual licensed because they can't figure it out.

The GPL intent is arguable and confusing, so almost all companies simply ban GPL software to avoid the lawyers. This last point is most devastating for GPL. If software does not get used, then it has failed its purpose.

History:
There was a time in the 90's when the only real choices in software were Windows 3.x, Macintosh OS, IBM OS/2 and UNIX. To get into the then elite world of UNIX would cost thousands of dollars and the user will still not end up with anything user friendly. Ironically, Windows was basically free for most computer savvy people, although it was not very attractive, but that is another story.

The savior was GNU and Linux providing UNIX tools and eventually the entire operating system or free, mostly. Much of this work was done by starving college students who did it for fun or challenge, but many, living on tuna, also hoped for money from those companies who could afford it.

Enter GPL, the license perfect for the starving college student hoping to make a buck from the corporate world. This was a great idea in concept.

GNU put Open Source on the map:
The GNU activity improved much software in terms of usability and portability in their patent-avoiding rewrites. The early GNU philosophy was to rewrite programs in a black box and intentionally achieve a different design objective then the original author. For example, instead of making a fast program, make a memory efficient one. Patents should have never been applied to software as they prevent innovation and primarily assist monopoly hungry companies, as a result harming consumers, but that is yet another story.

Hind Sight:
The starving college student later got rich employed by a company and the vast majority never saw a dime from the Open Source. Ironically, the same people found themselves having to rewrite everything they and others did in Open Source because the company they work for banned using Open Source because of the license. Even more sadly, these developers will have to do it over again at every job.

One has to imagine that most Open Source developers do it with hopes that as many other people use the free software as possible. Ironically, GPL has the opposite effect on software in encouraging yet another rewrite of the functionality with a corporate friendly license.

But Companies don't contribute:
It is simply not true that companies don't contribute. There are many companies that have a direct business interest in ensuring Open Source works best on their platforms. However, it is also true that many companies don't "give back." They often have legitimate reasons for this like:
  1. Not having the resources
  2. Not understanding the liabilities
  3. Not being able to afford the lawyers to explain and defend the liabilities.

A colossal waste of money:
Think about the billions of dollars cumulatively spent by thousands of companies avoiding the use GPL software, when in most cases the developer wanted it to be used by everyone and the company would have used it. Enough said..

Technology held back:
Since everyone has to rewrite everything for resale, less time and resources are spent innovating and advancing technology. This harms everyone, especially the end users of nearly every product in existence.

Even further, there could have been incredibly well engineered Open Source that represents "best of breed" software. This would have made it possible to provide better and more reliable software to all the people of the world in countless products. Even though such software exists, it is hidden behind the cloud of GPL.

Time for a change:
Change is easy, use MIT or BSD licenses for all Open Source.

Making Money:
The non-GPL, MIT and BSD licenses allow open source to be used, reused, rewritten and redistributed without any monetary restrictions but does protect the liability of the original author. Hence, the author, gets no direct monetary reward for their work. That is it, in plain english, Open Source = No Direct Money.

There is money to made from Open Source via services if that is the primary concern. If the developer's innovation is so potentially profitable, then the author should consider release as a commercial product instead. Sorry, GPL won't help.

Disclaimers:
I have written thousands of hours of Open Source software (some GPL) and even more commercial software, was there in the early 90's, work for a company that contributes to Open Source, have worked for companies that didn't. I have nothing to gain from any conclusion and believe, from real experience, that GPL has had some negative impacts to Open Source software that need to be exposed. I still write Open Source under the MIT license.

No comments: