For some members of the open source movement, open source is the moral compass of the software industry. Richard Stallman would strongly disagree if you said “open source is about giving away software for free.” Rather, open source is about freedom–giving everyone the freedom to see how software works and use it without restrictions. At the heart of this is a broad intuitive idea that you can’t control ideas like they were physical products–that once someone gives me a piece of software, just like any real life object, it’s my right to see how it works and use it in any way I see fit.
Now, eight years after the term open source was first coined, we see two of the fruits of this movement–Linux and Firefox–gaining lots of public attention. On the other side, we see open source server technologies like Apache with an enormous foothold in the industry. Open source has gained traction, but does this mean that open source has succeeded in fulfilling a greater social mission?
No. Read on.
Owning Your Own Destiny
When one talks about “free as in freedom, not as in beer,” they are making a bold and rather brash statement about open source software. Open source claims that it’s open to everyone and enables you to make changes–it gives the user liberty to use the software however they wish. But this is hardly true.
For this openness to be in any way useful, it has to be practical. If I gave you a pile of 0s and 1s and said “hey, it’s open, you can do whatever you want with it,” it would be a total sham. Like the bible in Latin, such a giveaway would be almost useless to the average programmer who wanted to tinker with it or understand how it worked.
So, with this in mind, we might think it obvious that open source software would be the most usable of all software. It would have the most transparent interface, so you would know exactly what you were doing as a user. It would also be easily extensible–the code would enable you to work with it and manipulate it with ease.
However, while toasting itself over the success and freedom of open source software, the people who got largely overlooked are the group for which freedom means the most–normal people, the non-programming classes, who are the vast majority.
“Free as in quantum physics, not as in beer”
I understand C relatively well. It’s a programming language that’s not too difficult to pick up on (at least, the simpler parts of it), and the syntax isn’t absurdly arcane. Nevertheless, as a computer programmer (and a poor one at that), I’m a member of a rather small elite group. All programs are written in programming languages–it’s a given. However, for everyone who is not familiar with a programming language, the whole idea of freedom is crap–there is no real access and no real benefit.
Now you may argue that it’s simply not possible to write a program that everyone can understand. Even if we were to write in BASIC, most people wouldn’t get it, would they? On practical grounds, you’d have a good point–it’s not reasonable that we could get people to a good level of familiarity with computer programming, which is a magical language with its own quirky incantations.
However, if you want to claim that the fault lies with the general public for not being willing to spend the time to learn how to program and understand source code (something which, in my case, took me almost a decade of effort to become modestly decent at), then you are an elitist, albeit one with a pragmatic argument.
Firefox, one of the open source programs with the widest penetration, has started to suggest ways in which we can open up the architecture of open source software. Firefox enables extensions, which allow someone with a little Javascript background to get in and mess with the program. This ability to tinker, while not yet on the level of enabling true transparency, does bring us closer to the lofty ideal of “software for everyone.”
I don’t claim that making software architecture simple is an easy task–but it is one that is necessary to any sort of true universal freedom. Open source software will only be really and truly free when any motivated and intelligent person can put in a reasonable amount of effort and understand how it works. This is a worthy challenge for any of the minds who work in open source development.
But we can’t even get that far.
Even if we can’t make the layman a programmer, there is a lower bar we should at least be able to clear–making sure that the average user can use open source software without being an expert in it. And in this, open source has also lagged behind–ever try using GIMP?
User interface design has never been a priority for most open source projects. Richard Stallman argued that this priority was just as important as having open code when he wrote this:
The biggest deficiency in free operating systems is not in the software–it is the lack of good free manuals that we can include in these systems. [Stallman]
While he was talking about manuals, the point is the same. If your non-programmer friends can’t use Linux, is it really–as in freedom–free?