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:

I believe in freedom of choice for the author of the software. The choice to release it to the public for a fee, with limited rights, free for all or not at all. Why would you want to limit the freedom of the developer?

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.

Amen.


Rss Commenti

10 Commenti

  1. The main difference? To me it’s that opensource/freesource both operate at a much larger time scale then any proprietary software I know.

    Proprietary software main purpose is to make money *now*; which sometimes can mean that it’s more profitable to ”gently force people to buy the latest release”. In this mindset it is unavoidable that in time the ”product” will be replaced, making the current software very good (mostly useless) abandon-ware…

    The whole notion of ”release” is strange in many ways: Apparently “revolutions sell”, but barely noticeable evolution is what most people would prefer. Slow progress is however not cool and you can’t really market it in a 30 second ad.

    Opensource and freesource don’t need 30 seconde ads. The progress is made over many years, slow and barely noticeable. It’s about continues refinement and maintenance. It’s a totally different mindset.

    Freesource is (in the end) about do-it-yourself software, for a world of people who all can write algorithms. A special culture which will develop when all children learn to write software, like they learn to read, write, arithmetic, etc. Software for programmers so to say, where citizens share and help each other. It’s democratizing technology in a network civilisation: the web (no top, no bottom).

    Proprietary software is for a world of ”priests and laymen”, where specialists write tools and the laymen use them. This is the hierarchical top-down/bottom-up view of the world.

    Two radically different ways to view the world.

    #1 Gideon
  2. Nice post, Zef.

    I agree with you on all points. The Free software movement just gets way too political/religious for me at times.

    #2 Shane Bauer
  3. Speaking in terms of recipes, would you waltz into a bakery and demand a free cake? I wouldn’t. The end result of the recipe is the food item. The end result of the source code is the software. Why should I just give away my ‘cake’ which I spent so much time ‘baking’? If you or anyone else want changes made, I’d be happy to bake a cake to suit your needs. That’s how I make my living.

    #3 Jake
  4. Jake: Not everyone sees it like that. Some would consider the end result of programming to be the source code. The comparison to a bakery is in that sense as wrong as you can get, missing the point completely.

    “Programs must be written for people to read, and only incidentally for machines to execute.” (H. Abelson and G. Sussman) This is the basis of the difference of paradigma between the two cultures.

    One the one hand you have the the hackers who write beautiful code and want to show the world their master pieces, and not just what it does, but more *how* is does it. These are the people who care about the tools they use, prefer dynamic typing above static typing for example. They care about their peers more then anyone else. The view it to be an art form and want to share their works, and learn/study the works of others to improve themselves.

    On the other hand you have the people who see the final program as a tool, a product. They don’t care about there tools; as long as it can be deployed and sold in time. The care about customers (mostly laymen) and maybe their manager (mostly laymen). They tend to view programming in terms of architecture and factory work. They really don’t care about sharing the code they write, it’s not the product to them, to them it’s only the blueprint. They prefer static typing in most cases I’ve found.

    I hope anyone can see that these paradigmas can not, will not, co-exist in peace over a long period of time. It’s hard to make laws which accept these two conflicting points of view. It’s the difference between a culture where only a few scribes can read and write and a culture of bloggers, where anyone can read and write.

    The slogan “Information want to be free” has to be understood in this context. Literally this is a bogus claim, like “the war on terrorism”. But both are no intended to be taken literal: They are intended to reflect the spirit of the culture that people feel: In their culture information is free. A sense of commitment is made.

    Which culture will win in the long term? Which culture will make the most profit in the long run? What do we want? Who do we want to become?

    #4 Gideon
  5. sorry, for the typo’s here and there… these, their/there the/they.. I don’t have my day I guess ;)

    #5 Gideon
  6. Gideon: Is that your vision on the software development world, or is that the free software vision, because it’s the first time I’ve ever heard about this. And it has never been mentioned in the book about Richard Stallman (which basically started the free software movement).

    A world where everybody learns to write software, as they learn to read and write, I find very doubtful and unrealistic. Is writing software really as important as reading and writing? I don’t think so at all, someone who repairs cycles; writes novels; or practices pratices law, really doesn’t have to know anything about programming.

    Nevertheless, I’d probably be part of the “view software as a tool” club. I built software to get something done, not because it’s an art on its own. Particulary now, the only reason for me to write software is when I need it, or to show that a concept I made up actually works. “Programmes must be written to be read, and only incidentely for machines to execute”; I think programmes are written to get something done, not to educate others or to show how skilled you are. That’s how I look at it anyways. But then again, I’m probably not part of this “freesource” community.

    #6 Zef
  7. It’s not explicit in Stallmans philosophy but it’s the logical conclusion and unavoidable consequence of his ideas.

    Only 400 years ago lawyers, bakers and writers did not have to know how to do long devisions; most people did not know how to read or write — nor did they have to know.

    You just can’t stop progress. In time programming will evolve and everyone will learn it. It’s just to powerful. People will learn. I doubt the they will use c of something like it, just as that the roman numeral system was replaced because it was just to hard and useless.

    Programming is the ability to automate a repetitive task so that a machine can perform it… in less time then it would have taken if done by hand. It is using you brain to free your hands. It’s like the car makes you travel faster and farther: who would choose not to learn to drive a car?

    Do we need free software? Yes! So that we can learn and stand on the shoulders of giants. (Mind you: most open source software is however not good enough… like most books are not literature.) Will everyone agree? No. Because some people just don’t care about these things, which is their right of cause. They just want to ship a product and programming is just a job.

    Think of this: Most scribes never cared about getting everyone to read and write. Most scribes have argued that most people will never be able to read and write because it’s just to hard. The even made fun of any attempt to make it less hard[1].

    Likewise most ”profesional programmers” argue now the same thing, making fun of much easier dynamic languages.

    That does not make it true however. Things change. People will learn and programming will become part of human culture. Like powerful technology has always done. People are in the end all the same, anyone can learn everything — they just need to see the value of it.

    [1] Read the history of the Hangul for an example: http://en.wikipedia.org/wiki/Hangul

    #7 Gideon
  8. A healthy free software movement is important if we want to raise the level of abstraction that everybody works off. I can point a couple of developments that wouldn’t have taken off if not for the way GPL is written.

    a) hosted web applications, including Google
    b) scripting languages, where definition of dynamic linking is pretty loose

    #8 Chui Tey
  9. Good.

    #9 synfiens

Sorry, the comment form is closed at this time.