I just finished reading “Free as in Freedom: Richard Stallman’s Crusade for Free Software” (Amazon link). Not because I’m a symapthiser, but because I thought that either I didn’t understand the motivation behind free software well, or that I heartly disagreed with its standpoint. I bought the book to challenge myself and see if I could understand and agree with the free software movement.
To start off, a little background information. Richard Stallman has been the main voice for free software for many years now. He is very well educated, went to Harvard and briefly to MIT, he’s considered to be one of the best programmers and hackers around (he coded a lot of the GNU tools, such as Emacs). While that’s all very impressive, does that mean they guy’s right about everything? Quite often the most smart ones are also the most extreme, this seems also be the case with Richard Stallman. He believes in free software.
So, what is free software exactly? There are multiple definitions. The one most commonly known is freeware, software that’s made available for free, you don’t have to pay for it. The other is what I’ll talking about here. Free software is about freedom. Freedom to do with software whatever you like, modify it, share changes and redistribute it to others. That’s obviously different from freeware. With freeware you usually just get the binaries and are allowed to run it for free, you’re not allowed to modify it.
Is free software the same as open source software then? No. The difference is this: free software has political objectives, software to be free (as in freedom) is not about convenience, it’s about ethics, it’s a bit like a religious thing. Software ought to be free for everybody, no exceptions. In other words: Putting any restrictions on the use and availability of software is wrong and evil. Proprietary software is evil. This is what free software (and the beating heart of free software, the Free Software Foundation) is all about. Open source on the contrary, is not a political movement. All software that fits the Open Source Definition can be called open source software, no matter the political reasoning behind it, or lack thereof.
So far for the facts. The question now is: what do we want? What do we believe in? Should indeed all software be free and should everybody have the freedom to do anything with software that he or she likes? Is it indeed unethical to limit this freedom to the user of the software? Yes, says the free software movement. No, say I. Actually, I thought I had a pretty strong argument why the free software movement is wrong, but as I wrote this piece I realized it wasn’t valid. My argument was as follows:
But I realized this is not how it works. Free software is not about limiting rights for the developer, it’s about the belief that the only ethical license to release your software under is a license giving everybody full freedom. Although I still don’t believe that’s the only ethical thing to do, it’s not as bad as I thought.
Often, when free software advocates attempt to show the unfairness of proprietary software, they compare it to recipes — It’s a valid comparison, as recipes bascially are source code, yet compiled by the cook instead of a software compiler. They say: isn’t it uneithical to not to allow to copy recipes from your neighbour and change them to suit your taste? Without even answering this, recipes are good comparative matterial also because some recipes are public domain — are shared and modified — and some are proprietair. For restaurants and companies like Coca Cola the secrecy of a recipe is of fatal importance. If you ask for the recipe in a restaurant, you probably aren’t going to get it. Is that evil aswell? Are you going to boycot every restaurant that won’t give you their recipes? I don’t think so, I haven’t heard of anyone doing that any way (not even Richard Stallman). Although, if you believe in freedom of software, you should also believe in freedom of recipes; or am I missing something?
I do like open source software, though. Open source software isn’t intended to kill all proprietary software. If you created some piece of software for fun and want others to play with it, modify and use it, releasing it under some open source license is a good solution. But for companies it can also be smart to build an open source community around their products: as long long as it complements it and doesn’t compete. If you’re building server hardware like IBM, it’s good to have lots of software available that works well on your hardware. That’s why IBM invested in Linux, to make it work well with IBM hardware. Same goes for the Eclipse software. Eclipse is a Java IDE platform largely created by IBM and some partners. IBM, and all those partners, do Java software. Not IDEs, mostly, but Java server software, database software and such. If they invest in a good IDE, and make sure it works nicely with their products, it makes their platform more attractive. On top of that, most of those company build their own properietary extentions on top of the Eclipse platform and sell that. They gave code to the community, the community can give back (and does) and the companies can then use that for their profit, it’s only fair. Read more about this in Joel Spolsky’s Strategy Letter V.
Let’s say you don’t agree with the free software philosophy, as I do. What do we do about it? Do we avoid everything free? That’s harder than you think. Licenses like the GPL come from the Free Software Foundation, they are a tool to enforce freedom of software and send out the “I believe in free software” message. Yet, if you ignore all that, it’s a good and fair license. Yes, it’s sort of viral, it says that everything that depends on the software has to be licensed under the GPL too, but when you think of it, it’s only fair. It doesn’t allow people to just go and use your software in their commercial applications. If you don’t care about that (and I can imagine plenty of occassions where you wouldn’t), you could pick another license (such as the BSD or X11 ones), those aren’t even free-software compatible (yay!).
I’m going to be pragmatic about this. I won’t avoid everything free (if only it were because you simply can’t, for example all the GNU tools you use in Linux everyday are GPL tools). I will just state my opinion on it clearly whenever I think I have to. I won’t abide FSF terminology such as GNU/Linux (instead of just Linux). I’ll use their stuff, but as open source software, not as free software.