Of Purists and Pragmatists
Published 15:06, 23 July 09
I have been writing about free software for 14 years. For most of that time, a recurrent feature of that world has been a battle for its soul, waged by two distinct camps.
In Rebel Code, I dubbed them “purists” and “pragmatists”, not really because they are perfect labels, but because I'm a sucker for alliteration. I'll use them here for the same reason.
The purists believe that compromising on any of the principles of free software is doom, and that the end does not justify the means. They are led, of course, by Richard Stallman, who embodies this stern Old Testament viewpoint – and not just when he's garbed as St. IGNUcius.
The pragmatists, on the other, think that it's crazy to cut off one's nose to spite one's face, and that free software is best served by making sensible compromises, provided the end-result is more, better code being used by more people.
As you might expect, the pragmatists are too, well, pragmatic, to have a single undisputed leader, but there are number of well-known figures, like Linus or Eric Raymond, who espouse some variant of the pragmatic approach.
Every now and again, some issues sparks off the great debate, as purists and pragmatists try to gain the upper hand. Perhaps the best example was the launch of KDE, which aimed to create an attractive user interface for GNU/Linux, thus encouraging more people to try it out. A noble aim, but one the purists found insufficient (of course) to justify the use of proprietary code, in the form of the original Qt libraries.
The purists adopted a two-pronged attack. Some set about creating Harmony, a free drop-in replacement for the Qt toolkit; others decided to start form scratch, and created the GNOME desktop, built entirely on free software.
At the time, passions ran high, things were said that would have been better left unsaid, and many predicted terrible schisms. But in fact what happened was that the actions of the purists persuaded Troll Tech, the creators of Qt, to make a number of moves to address the concerns of the purists, culminating the release of the Qt toolkit under the GNU GPL.
Today, most people have forgotten that there was ever anything to disagree over, and instead can enjoy the luxury of having two high-quality, competing solutions.
Now we have a similar situation regarding Mono. The purists are concerned that there may be issues to do with software patents in jurisdictions that recognise them. To them, it seems folly to create what may be tainted code because of the digital sword of Damocles hanging over them through such intellectual monopolies.
For the pragmatists, by contrast, Mono is simply a good way of programming that can serve the useful purpose of allowing people to run .Net-based programs on free software. All in all, then, they believe it is to be welcomed as a way of increasing the use of open source.
There is a particular irony in this situation, because this time it is the GNOME project's use of Mono that is proving unacceptable to the purists, whereas ten years ago, GNOME was the purist solution to the problems with KDE's pragmatism. If nothing else, this shows how foolish it would be to judge projects on their past alignments rather than present actions.
As a spectator and armchair commentator on these events over the last decade and a half, I have to say that I think this kind of thing is good for free software. Debates of this kind help expose weaknesses and refine arguments; because there is a wide spectrum of beliefs and practice involved, free software is able to grow in all directions, and is not slavishly following any particular orthodoxy.
I think these kinds of eruptions on mailing lists and blog posts are a demonstration of the continuing vigour of free software. I would, though, add one caveat. Passionate debate about the technical and ethical issues is to be welcomed, but it is important that the discussions concentrate solely on these. Ad hominem/ad feminam attacks are not just irrelevant, they are harmful.
They can lead to abiding rancour that poisons discussions and decisions for some time, and that helps no one – neither purists nor pragmatists – and certainly not free software.