Why the GNU GPL Still Matters
Published 14:37, 16 July 09
Last night I went to the official launch of the International Free and Open Source Software Law Review, which I wrote about on Tuesday.
As you might expect, this was full of people who knew a great deal about the licensing of free software. So I was intrigued to hear the view that “free software” and “open source” are the same thing, and interchangeable terms.
That comment dovetailed nicely with some very heated discussions taking place around the Web as to the relevance today of the GNU GPL. I started reading the comments on two posts in particular, one from a GPL sceptic, and a rebuttal from Matt Mullenweg, WordPress's creator.
It soon became clear to me that some people are labouring under serious misconceptions about the GNU GPL. Somewhat optimistically, I thought I would offer my own understanding, such as it is, in the hope that it might be useful in this context.
One of the biggest issues for those attacking the GNU GPL seems to be the apparent contradiction between its desire to propagate freedom, and its refusal to give complete freedom to programmers – specifically, the freedom to take the code and make it closed.
The confusion arises because there are two different freedoms involved: that of the user, and that of the programmer. As the official guide to the GNU GPLv3 puts it:
There are four freedoms that every user should have
That is, every *user*, not every programmer. The former's freedom is paramount, to the extent that the latter's is compromised, but only in one, very specific, respect: that programmers do not have the freedom to take freedom away from the user.
The reason for this is simple: unlike open source, free software is not about software, it's about freedom. It's aim is to propagate freedom, and the means it uses to do this is through software.
Where the freedom of the programmer clashes with the freedom of the general user, the latter takes precedence – for the freedom of general users would actually be reduced if programmers could take otherwise free code and enclose it, exactly the opposite of the intended effect.
So, while it is true that the GNU GPL takes away one very specific freedom from programmers, it is not true – as many of those commenting on the posts above seem to believe – that the GNU GPL can, or even wants to, limit their freedom in other, arbitrary ways: like only programming on a Thursday, or wearing a tiara when doing so. Again, the official gloss on the GNU GPL v3 makes this clear:
the freedom to use the software for any purpose
This is actually highly contentious, but not for the reasons critics of the GPL normally mention. It means, for example, that the most oppressive regime in the world has the right to use free software for anything: no conditions are imposed, no conditions must be met.
That shows a pretty deep commitment to freedom when you allow even people that you almost certainly despise to use your software for purposes you are likely to abhor. Nothing could be further from the world of closed-source software that does get to specify who can use their software and for what.
The other major bone of contention in the discussion about the merits and demerits of the GNU GPL concerns the issue of efficiency: that is, what is the best way to encourage coders to join projects and for users to adopt software. But this, too, if based on a misunderstanding of free software: the point of free software is not to spread software, but to spread freedom.
It is not trying to be “efficient”, it is trying to be ethical; ideally you want both – and in many respects, the culture that the GNU GPL fosters is extremely efficient, for reasons I'll discuss in a moment. But if efficiency and ethics clash, ethics win every time.
Adopting more “permissive” licences may well encourage coders from the proprietary world to join in; but the price of them doing so is that the fruits of the community's endeavours can be taken and turned into closed source. That's problematic for two reasons.
The fundamental problem is that efficiency in this case results in less freedom: closed source software, by definition, does not respect the freedom of its users, so the more of it that exists and is used, the greater the lack of respect for that freedom. It's like putting golden handcuffs on someone and emphasising how valuable they are. But even at a more pragmatic level, this approach has its disadvantages.
The success of free software is based on the insight, at once profound and yet trivial, that it is much more efficient if everyone contributes a small part to a greater whole that they can build on and benefit from, than for everyone to toil away on their own, constantly re-inventing the wheel.
It's why free software is able to grow and mature so quickly. Whether people do this out of pure altruism, or because they recognise that it is ultimately in their own interests, is not really the issue: the system works. But it only works provided there are no free riders.
Research show that people in general are willing to contribute to communal projects if everyone does so on the same basis. But as soon as it becomes possible for others to take without giving – for free-riding to exist – there seems to be some primitive instinct that revolts. Indeed, many studies show that people will actually go out of their way to punish free-riders, so deep is this innate feeling of injustice.
It's the same with software. For example, recently the well-respected coder Zed Shaw explained in detail why he turned to the GNU GPL to prevent free riders. Note that this was not a question of a headstrong creator imposing an arbitrary condition on the use of his software, but a matter of preserving the very dynamics of sharing that made sustained creation possible in the first place.
Contributing to projects that use more permissive licences than the GNU GPL means that it is likely that many will not contribute because of their distaste for free riders.
That doesn't mean that everyone will refuse to contribute on these terms, just that projects using the Apache licence, say, are self-selecting for those who are not so worried by this aspect. But it does undermine the argument advanced by some that more people are likely to join projects with more liberal licences. Yes, people from non-free projects are more likely to join, but it is also likely that those more committed to the idea of sharing on a fair and equal basis will not join.
So whether you view things from a strictly ethical viewpoint, or simply from a pragmatic one, it seems to me that the GNU GPL emerges as the best solution. Ethically, only the GPL, with its emphasis on propagating freedom for the user, strives to make the world a better place, rather than one that has more cool stuff made out of bits, some of which may reduce users' freedom. In terms of efficiency, the GNU GPL ensures that there are no free riders, and so can tap into the powerful human instinct to cooperate on a share and share-alike basis.
I don't think the recent flurry of posts and comments calling into question value of the GNU GPL is a bad thing, or even a sign that the GNU GPL is on the way out: according to Black Duck, the cumulative share of GNU licences is around eight times greater than the next most popular (the Artistic Licence).
Even taking these figures with a generous pinch of salt, as I do, they are indicative of a world dominated by GNU licences, whatever the exact shares.
And while it's true that the rise of cloud computing poses challenges for the world of free software, those challenges are not really about licensing: they're about the dominance of a few very large companies and their increasing power over us.
Even if they gave back all the changes they made to the free software they used, that would not solve larger problems of freedom, which have to do with access to data, privacy etc. This means that the current GNU GPL – even the AGPL – needs extending to include those aspects. Judging by some comments he made at the recent Gran Canaria Desktop Summit, I'm not sure whether Richard Stallman is fully aware of the seriousness of this problem yet, so maybe there's some work that's needed there.
And to those that say companies like Google and Facebook will simply carry on as they do now, using free software, and giving back in only a limited fashion, I'd say that it's early days. I use Google because there is no alternative, just as I used Windows before I made the move to GNU/Linux. Once there is are alternatives that respect me in the way free software respects me, I shall move, and I suspect others will too.
Those companies are bound to emerge for the same reason discussed above: eventually, the people writing the code that underpins most Web 2.0 startups will take action against free riders, and companies that refuse to give back in the fullest sense – not just the odd scrap of code here and there – will find themselves unable to tap into the ever-increasing store of free software that they've always depended on.
They'll survive, of course, but they'll survive as Microsoft does: fighting a losing battle against the laws of software production, which mean that there always comes a point where the software is simply too complex to be produced by traditional, top-down management processes burdened with the intellectual and emotional baggage of years of pre-existing code.
Empires rise and fall; software behemoths come and go; human nature remains the same. That is why the GNU GPL, which seeks to protect and promote one key aspect of our humanity – sharing - will always matter.