GPL is a strong advocate for free software, but in many situations, it is not very efficient in promoting innovation. Perhaps this is a wrong criterion to judge the GPL, as it is a “copyleft” license when compared to copyright. Copyright provides the creator exclusive rights to original works for a period of time, the general philosophy being that it would “promote the progress of science and useful arts”. Copyleft uses copyright law to grant broad rights to everyone to use the work, but it is primarily meant to promote freedom of software, a different goal. This goal is not mutually exclusive with innovation, but the way GPL is structured can reduce innovation.
GPL is the most well-known of all the software licenses and is widely used in open source projects, the different variants of GPL constituting almost two-thirds of all free projects. Popular products based on GPL include Linux and mySQL. Many commercial websites that you visit on a daily basis run on GPL software. Therefore, to say that GPL is not responsible for any innovation is a false statement. And that is not my point, which is to consider if the GPL could have done better.
To understand this, one should look at how Creative Commons licenses are structured for creative works. There are four attributes of a Creative Commons license:
- Attribution: Whether the author of the work requests that they receive credit for the copied or derived work.
- Non-commercial: Whether the copied or derived work can be used only for non-commercial purposes.
- No Derivative Works: Whether the work can be modified in any form.
- Share-Alike: Whether the licensee may only distribute derivative works using the same license.
The Creative Commons license provides more power to both creators and users. Some creators may only be interested in having people understand that the original work came from them. Some may not want others to profit from their work and to maintain the work in its original form. The “Share-Alike” enforces the same restrictions on licensees. End users have greater freedom in choosing the work that fits their constraints, the most prominent being allowed to use the work for commercial purposes.
The GPL world is not very friendly to commercial use of software works. Although the GPL does not place any restriction on selling GPL-based software, since everyone is essentially allowed to copy and redistribute it, it is very difficult to sustain a good business model based solely on selling software. Many companies (JBoss, mySQL) have used dual licensing to earn revenue, while others sell their services or products to capitalize on GPL. Dual licensing, to me, seems like a workaround for the GPL, rather than helping free software.
Commercialization is an important element of innovation. Many innovations start small with a team as small as a solitary developer. While many innovators may like the idea of giving away their work free, others would like to profit from their effort or, at least, earn enough to sustain their efforts. Regular copyright allows for this, but consider any innovation that is built using code licensed under the GPL. The viral nature of GPL means that any derivative work should also be licensed under the GPL.
Millions of man-hours have perhaps been spent on creating software using GPL. Economic Darwinism dictates that only a few become popular. Work on many free software projects is abandoned after programmers lose interest. All those lines of code are lost to the commercial coding community, because they have been licensed under the GPL. A programmer finding a good routine or class that does some task perfectly is unable to use the code because of the corporation’s inability to use the code in their product. Now, I have no way of measuring the net effect, whether innovation inhibited by this loss of freedom is counter-balanced by the innovation due to all the free software available, but we definitely need to acknowledge that there is a downside because of the GPL restrictions.
There are few programmers who work in software companies that do not care if their source code is public. Most corporations cannot do that, for various legal, security and logistical reasons. And many have strict rules against using or viewing open source code. It would have beneficial to those programmers if the GPL allowed proprietary use of GPL code. Unfortunately, the history of the free software movement, especially the Free Software Foundation, has deep anti-corporate roots. Many high-priority GNU projects seem like statements against corporations rather than understanding what programmers and users need.
In my view, the BSD licenses (and the Apache license) provide a much more reasonable free software license for most programmers. They allow software to be used in any way, but preserve the free nature of the original work. Modified works, however, do not need the same license. This is more friendly for developers of proprietary code, not only in large corporations, but also for small software companies that can save the expense of developing key features. The guiding philosophy behind GPL is that commercial software is bad because it restricts freedom. That is a superficial view of the world. Proprietary software allows companies to make profits that can be channeled into further improvements for end users.
The GPL also seems to tap into people’s sense of justice when they give out stuff free: “I am not profiting from this product, so I don’t want you to profit from it, either.” I think a better way would be, “I am not profiting from this product because I am not making any effort to sell it, but if you want to take the effort even though it is freely available, go ahead and use it.” This is a difficult concept for many people to grasp especially when they see it in action. But such use can increase the pace of innovation.
[Disclaimer: I am not a lawyer. Do not take this post or any other material on this blog to be legal advice or opinion.]
[Image licensed from ryyo]