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.