For the most part by the time I finished writing my last article on licensing I had mostly convinced myself that the GPL isn’t a practical license for most projects. That is, outcomes when using the GPL aren’t likely to be any better than outcomes using a permissive license, except for certain kinds of projects, mostly projects involving big faceless companies, and I’d just as soon avoid such projects anyway.
My own thinking on this has changed over the years in part because of a greater sense of humility about what I produce. I’m really not that worried about people stealing my work because I don’t think that theft would be of much value. But also because I realize that the value in software is not so much in the code as in the process. The process is what is valuable, particularly for open source, and licensing doesn’t really address issues of process.
As an example, if I’m uncomfortable with how some member of an open source community is using the code, or the community, I will be much more effective by dealing with that head-on, talking with that member, or even confronting them if it’s really necessary. If you give someone an unwelcoming attitude, they’ll probably go away. The license doesn’t need to be your gatekeeper. It’s not a particularly effective gatekeeper anyway.
Another change is perhaps a more reasonable valuation of code. There was a time when people wanted to protect their intellectual property. Even some non-software company might have gotten the idea that it should own the code it contracts someone else to write, under a proprietary license, so they could sell that software later. That anyone would care to buy it was always an illusion, but the illusion is a little more obvious these days.
One value of the GPL that I do want to acknowledge is its expression of values. It makes this explicit:
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.
But the GPL does more than just its text: adopting the GPL is a statement of principle on the part of the original authors, of the people who adopt the project, and of the people who later help maintain the project. It is a statement that freedom is valued and that it is valued in a universal sense, not just in a personal or isolated sense.
This is implicit, not explicit, in the choice of license, but despite that I see this pattern in projects. Projects that choose the GPL are more likely to engender a spirit of openness and sharing. Not of the core project itself — both GPL and permissively licensed projects accomplish this just fine so long as they are properly maintained, and their success is far more related to how the project is managed than the licensing. But I see the difference in the sofware that grows up around the project: extensions, complementary projects, documentation.
Maybe this is because of licensing. The license filters the community, and the people who are left in a GPL project are all at least open to sharing. But more than that, I think it puts people in the right state of mind to share. The project feels more principled, the participation is based less on pragmatism and more on optimism. And there’s always people coming into open source who haven’t really figured out why or what they want to get out of it. Presenting them with the principles of Free Software influences their decision. (This issue has caused some debate about terminology.)
With all that said, you don’t need the GPL to present the principles of a project. It’s certainly the easiest way to do so. The GPL is shorthand for a rich set of principles and ideals. But it’s shorthand for people who are already in the know. The ideas need to be reiterated and explained and reconsidered to stay relevant. I think a project might do more good with an explicit statement of principles. With that in place the licensing might not matter so much.
Automatically generated list of related posts:
- Choosing a License I thought I’d take some time to talk about licensing....
I don’t think I will ever understand how putting restrictions on source codes use is beneficial if you are intending to open the source in the first place.
ToddB, you are misunderstanding the point. Open source is not the final goal; free software is the goal. Open source is a requirement of free software, but the reverse is not necessarily true. I can cite several cases where companies have attempted to appropriate open source code into non-free products (usually embedded firmware), but the GPL has forced them to make their products free.
ToddB: Absolute freedom would have everyone allowed to do anything to anyone, with no societal restrictions on behaviour at all. To say that people in such a society are “free” is rather hollow, as it would be a paranoid, rule-of-the-ruthless world.
We don’t live in that world, fortunately: we as a society restrict behaviour because we judge that behaviour more harmful than the corresponding reduction in freedom. One way I’ve heard this expressed is the phrase “Your freedom to swing your fist ends at the tip of my nose”.
We are then faced with the choice of which freedoms are important for people to have in our society, and which are not desirable to preserve.
The GPL makes clear that “can impose restrictions on other people that were not imposed upon me” is not a freedom desirable to preserve. It does this through the condition that I may only redistribute the software under the same license terms as I received them.
IanB: thanks for a nice summary. I’m glad to see you expressing changed opinions as they come, whether from new information or further reflection.
JonR: Note that no party is forced to release software under the GPL. They always have the option to keep their modifications private and not release them at all.
Copyright law reserves the right of redistribution of a work to the copyright holder. The GPL is allowing other parties this right, so long as they follow the conditions the copyright holder has chosen (through applying the GPL to the work).
If they don’t like those conditions, nothing about the GPL is “forcing” them to release their modified work at all. That’s a freedom they can always exercise if they choose, but only under the conditions of the license under which they received the work. This is much more freedom than the offers they’ll get for most other copyrighted works.
> This is much more freedom than the offers they’ll get for most other copyrighted works.
It is however less freedom than one gets with the BSD license, because you can opt to use under closed source, and BSD has less restrictions.
There are various shades of “freedom”. The GPL is a very strict one. It does not necessarily have to be good or bad, but we all must acknowledge that it is stricter than the BSD.
The “BSD is more free” arguments are all based on logic, which I think is an invalid way to discuss these issues. Licenses are a social structure, not a logical structure. The GPL is very explicit and open about its societal goals, and it is searching for societal freedom. I find that people who believe in this mission share this sense of scope, though they don’t always know how to articulate that.
And frankly the BSD-is-more-free argument is so obviously a logical trick that I find the argument intellectually dishonest.
(I wasn’t sure if it was necessary to be tell people not to rant about the GPL in my last post, but that this post so quickly degenerated into this oft-repeated discussion of freedom makes it apparent that I was right to do so)
Thanks for the interesting post. I would note that the scientific-computing-in-Python crowd has largely chosen the BSD license over the GPL, and one significant reason for this is the idea that it will encourage more development (see “John Hunter’s License Pitch” at [the Scipy License Compatibility page](http://scipy.org/License_Compatibility “scipy.org”) ). As I have seen a large and vibrant community grow around the basic Python, numpy, scipy, matplotlib software, all with a BSD or BSD-ish, license, I can’t say that I see your point about “Projects that choose the GPL are more likely to engender a spirit of openness and sharing. [...] the difference [is] in the software that grows up around the project: extensions, complementary projects, documentation”.
Perhaps the choice of license is orthogonal to the success and openness of the scipy community — the big competitors are closed source and anything open is incredibly attractive to many, and there aren’t that many viable open source alternatives out there. The early developers chose the BSD license and the rest was history. Or, alternatively, perhaps the BSD license is causal to the success the community now enjoys. Big and small companies and organizations do pay people to work on this software, and the BSD license encourages them to do so without fear of being unable to release closed source apps.
It’s difficult to distinguish between these alternatives conclusively, but my belief is that the BSD license is causal to the success of the scipy community. In particular, the company Enthought, which employs many key developers, needs a solid infrastructure for higher-level, closed-source apps they write and sell. I think their support has been quite significant, and even if the community has now reached a critical mass that could sustain continued growth, I think much of the early efforts benefitted directly from the choice of BSD license. (By the way, a founder of Enthought wrote [an interesting post](http://blog.enthought.com/?p=30 “blog.enthought.com”) related to these issues.)
What do you think of companies that make their software GPL, and then sell a commercial version for use in closed source projects? Trolltech QT library, and bsddb under Oracle immediately spring to mind.
GPL is anti-commercial. You generally can’t use GPL code in your commercial software, so the viral elements of it actually do LESS to lower the cost of software than putting it under an unrestricted license.