Sunday, June 30, 2013

Permissive Licenses and Richard Stallman's Blindspot on the Rails Community

Recently, I had to go through a very, very difficult contract negotiation that hinged largely upon the inclusion of open source software in client deliverables. Suffice it to say, that at this point, I'm fairly convinced that L/GPL licensed software simply cannot be included in software deliverables if the client intends to a) distribute that software and b) include trade secrets or confidential information in that software. It may be technically possible, but it is a huge nightmare-headache. 

As a result, I took a second look at this essay, by Richard Stallman, arguing that LGPL is, in fact, too lenient in its requirements, and that people releasing open source libraries should really think about releasing them under GPL. The gravamen of his argument is this:

If we amass a collection of powerful GPL-covered libraries that have no parallel available to proprietary software, they will provide a range of useful modules to serve as building blocks in new free programs. This will be a significant advantage for further free software development, and some projects will decide to make software free in order to use these libraries. University projects can easily be influenced; nowadays, as companies begin to consider making software free, even some commercial projects can be influenced in this way. 
Proprietary software developers, seeking to deny the free competition an important advantage, will try to convince authors not to contribute libraries to the GPL-covered collection. For example, they may appeal to the ego, promising “more users for this library” if we let them use the code in proprietary software products. Popularity is tempting, and it is easy for a library developer to rationalize the idea that boosting the popularity of that one library is what the community needs above all.
In other words, Stallman is concerned that unless software is GPL licensed, then:

1. The free software movement will be left behind.
2. Proprietary software developers actively seek to crush the software industry, and won't contribute to free software.

Both of these statements, in practice, have turned out to be false, and the proof is in the pudding:

The entire Ruby on Rails community is based on free software - either under the Ruby license, the MIT license or the BSD license, and almost never on the GPL license, probably for the reasons I explained above. Node.js is MIT Licensed. So is JQuery. Stackoverflow is brimming to the rafters with employees of the 'proprietary' software industry. These are the tools of choice for many of your favorite web services, and their users are very much in the for-profit business.

Richard Stallman's fears have simply failed to materialize. The modern web uses permissively licensed software as its lifeblood, and, quite frankly, copyleft licenses are often directly in tension with the perfectly reasonable goals of both public and private interests.

So, in the end, I believe the very mechanisms that Mr. Stallman envisioned would result in GPL licensed software becoming the norm for best coding practices and the gold standard for quality software, have in fact relegated GPL software to the domain of academics and those who do not have to deal in trade secrets or deal with covered information (note/update: however, that Linux is in fact GPL licensed - I should say specifically that we are talking about the world of commercially developed and provided SaaS). The upside is that the community of sharing that Mr. Stallman had envisioned has come to exist - it just so happens that it exists under permissive licenses, not copyleft licenses, and the community is populated by a whole lot of people who develop proprietary software.

No comments:

Post a Comment