Pike, Stallman, Patents, and Civility
A couple weeks back, Rob Pike revived
this weblog, which in turn triggered
this discussion (among others, I'm sure). The only post on the site at the time of this writing (other than the short "revival" post) is a long rant about Richard Stallman that Pike wrote in 1991, and re-posted in 2004.
Rob Pike is a towering genius of computing.
And he's dead wrong.
To begin with, Pike's 1991 rant is showing its age. Free Software is about as mainstream and commercial as you can get these days. Hell, Sun Microsystems is releasing about everything they do under the GPL, and that's just for starters. IBM, RedHat, Oracle... all big players in Free Software.
But that aside, Pike intentionally mis-represents Stallman's viewpoints, ostensibly for the sake of making a point:
"Free Software is like Free Love, a hippie pipe dream in which computing is free from venality, commercial interests, even capitalism."
Now, Stallman himself may be a bit of a hippie pipe dream. He is, as far as I can tell, free from venality, commercial interests, and, yes, capitalism. He is the President of a prestigious foundation, yet he makes no salary.
But Free Software?
Come on, Free Software is more like Free Markets than it is like a hippie pipe dream. Pike almost surely knew this when he wrote the rant. And if he didn't know it then, he certainly knew it when he re-posted it in 2004.
Pike's rant goes on to talk about how civilized everyone at the "protest" was. He even cites this as evidence of him being right, and Stallman being wrong. He could just as easily have taken it to show how civil the Free Software movement was, even in 1991. But he didn't.
Software patents do hurt programmers.
I am a programmer.
So they hurt me.
I don't believe they're good for AT&T, but they're definitely not good for programmers. If you don't understand why, read
Donald Knuth's explanation. But that hasn't kept me (or Stallman, or the rest of us) from being civil.
I started out by calling Rob Pike a towering genius.
He is. But he's dead wrong on the issue of software patents.
Labels: freedom, software
Free Software Ethic
I am a Kool-Aid drinker. One summer, my college roommate and I drank 400 gallons of the pre-sugared variety, and saved all of the containers in a large Kool-Aid pyramid. And not just for the free stuff we could have gotten, had we bothered.
That, as usual, is a tangent.
I also drank the Free Software Kool-Aid. Richard Stallman is right.
Open Source misses the point. But I think Richard also misses an important point, which I'd like to address: the development practices associated with "Open Source" are not, in fact, practical or pragmatic.
When I, a programmer, write software, I do so to solve a problem that I have, or that someone else has paid me to have. I do so with the understanding that I will spend the least total number of hours possible on the lifetime of this problem. It is because I understand the virtue of laziness in a programmer.
As soon as the new
GNU General Public License is completed, it will become my license of choice. In the meantime, I use the current version (GPL v2). I license the software under these terms, so that other people will have the option of making my software more useful for themselves.
In doing this, I exercise my
essential freedoms, and accept the fact that others share these essential freedoms (they are, after all, essential). In exercising my freedoms, I have sacrificed nothing, and possibly provided something of value to someone else. But it is that person's freedom to make my software valuable to herself, not my responsibility.
The latter is a theoretically pragmatic argument (If more people use the software, it will be better) made by advocates of "Open Source" philosophies.
It is, simply put, not entirely true.
The siren song of the programmer is to solve generic problems (e.g. Object Relational Models or Full Stacks or Productivity). And in doing so, programmers often doom nascent efforts to poor performance, long development cycles, and, perhaps worst of all, frustration for the programmer.
Whereas solving specific problems well results in joy for the programmer, code that is written quickly and performs according to the programmer's need or skill, and code that may (or may not) be generally useful.
Over the long term, after enough programmers have done this, meta-programmers (e.g. RedHat or Apache or Ubuntu) can string together enough narrowly useful pieces to make a system that is generally useful. But systems that set out to be generally useful rarely are.
To me, the ethic of Free Software is a true ethic of freedom, and my chief responsibility is not to take these freedoms from anyone else.
Now that's pragmatic.
Labels: development, freedom, software