Free as in speech, not as in beer

 Stall-MAN

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?

Comments

  1. Chris says:

    Two things on my to do list to analyze before I follow up on this:
    http://www.bricklin.com/wontprogram.htm
    http://www.codinghorror.com/blog/archives/000635.html

  2. namehere says:

    Thanks for bringing up that great inventor of Moral compasses, RMS. He’s fun to quote:

    “Don’t programmers deserve a reward for their creativity?”

    If anything deserves a reward, it is social contribution. Creativity can be a social contribution, but only in so far as society is free to use the results. If programmers deserve to be rewarded for creating innovative programs, by the same token they deserve to be punished if they restrict the use of these programs.

    “punished if they restrict”? Hmm. Maybe we could apply that principle to agricultural production. Oh, wait…

    Here’s another:

    “Shouldn’t a programmer be able to ask for a reward for his creativity?”

    There is nothing wrong with wanting pay for work, or seeking to maximize one’s income, as long as one does not use means that are destructive. But the means customary in the field of software today are based on destruction.

    I’m glad he has confirmed my suspicion that it’s okay with wanting to be paid for work. I never was much for slavery. But some of the rest of his thinking seems off, though…

    And my favorite:

    The real reason programmers will not starve is that it will still be possible for them to get paid for programming; just not paid as much as now.

    Ah, moral compass, SHOW ME THE WAY!!! As I’ve said elsewhere, it’s too bad RMS never tried that last quote on some teamsters. The seed of OSS may have spent the rest of his existence pushing up skunk cabbage down by the river.

    http://www.gnu.org/gnu/manifesto.html

  3. Chris says:

    In case anyone misread me, my post wasn’t in support of RMS’s ideology. I have no interest in not getting paid for software development. :) Or enforcing quasi communist policies on coders. :-(

    My idealism has more to do with giving more users the ability to make their own tools, and make computers really and truly simpler. I wouldn’t mind turning a profit on that.

    Anyways, just to reclarify in case anyone misunderstood, my goal was to suggest that: if we think of openness as allowing access to all, and we think that’s a societal good, then we should understand that it’s not necessarily enough to simply give away syntactical mush on Sourceforge.

  1. [...] There is no shortage of speculation. A recent article on the Blog of Justice theorizes that open-source projects have yet to understand that “free-as-in-freedom” doesn’t do much good to unsophisticated user0 who can’t read source code. Therefore the primary benefit of open-source is lost on the public. 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. [...]

  2. [...] In my last post, “Free as in speech, not as in beer,” I made the rather outlandish claim that open source software will not truly live up to its mantra of freedom until there is freedom for everyone; that everyone with the wit and ambition would be able to understand how software was constructed and even be able to manipulate the code themselves. Now you may argue with me that making software architecture this simple is downright impossible when 30-60% of university students fail their first programming course. And you may be right; I didn’t set a goal based on its achievability. [...]

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>