Sunday, October 13, 2013

The free software movement: E-hippies who want to save the world

Let's say you go to a garage sale and buy a chair.


wooden chair
What a nice chair.
It's a nice chair and everything, but after a while you realize you have too many chairs. But you have this massive dog who likes his food bowl up high. So you do the natural thing and turn the chair into a dog bowl holder.

repurposed chair dog food bowls
You're welcome, Rover.
But then you're moving to a new city and you really can't be bothered to bring the chair-slash-bowl-holder. So you sell it at your own garage sale. The person who buys it doesn't have a dog but likes to garden. So they tweak your design a bit and now have a nifty flower pot holder.

repurposed chair flower pot garden
Bear with me: yes, you're still reading a CS blog.
And everyone's happy, right? You go about your merry way and everyone who sees the chair tells you how clever you are and it feels pretty great.

Now let's say you buy some fancy program. It does almost everything you want it to, but it needs one or two more features to be perfect. No matter; you're a CS superhero and those features really wouldn't be that hard to implement, so you do your hacky magic and have the ideal software. You send it to some friends who all say you're very clever, and you feel all warm and fuzzy inside.

Until the cops show up at your door asking you about copyright infringement.

This is where owning software is different from owning anything else. Even if you buy it and have it and it's "yours," you don't own it. You don't have complete freedom. And that seems a little messed up: we live in a culture where "once you buy something, you own it" is pretty much policy (stereotypical American, right? "YOU CAIN' TELL ME WHAT TO DO WITH MAH PROPERTAY").

That's where the free software movement comes in.

The free software movement, which was officially founded by Richard Stallman in the eighties with the launch of the GNU project) isn't about making sure you never have to pay for software ever again (though I feel like we're definitely tending that way as a society, and as a broke college student I'm totally okay with this). Instead, the movement promotes four "essential" freedoms for users:
(0) freedom to run the program,
(1) freedom to study and change the program in source code form,
(2) freedom to redistribute exact copies, and
(3) freedom to distribute modified versions.
You'll notice that none of that says "users should be free from having to spend money for a collection of ones and zeroes"; when you see "free software," it's free as in speech, not necessarily free as in beer. Sorry.

Stallman himself has terrible-quality webcam videos explaining the philosophy behind free software: (CS celebrity alert!)



At the heart of the free software movement is the idea of copyleft, a "general method for making a program (or other work) free, and requiring all modified and extended versions of the program to be free as well."
To copyleft a program, we first state that it is copyrighted; then we add distribution terms, which are a legal instrument that gives everyone the rights to use, modify, and redistribute the program's code, or any program derived from it, but only if the distribution terms are unchanged. Thus, the code and the freedoms become legally inseparable.
Proprietary software developers use copyright to take away the users' freedom; we use copyright to guarantee their freedom. That's why we reverse the name, changing “copyright” into “copyleft.”
Copyleft is a way of using of the copyright on the program. It doesn't mean abandoning the copyright; in fact, doing so would make copyleft impossible. The “left” in “copyleft” is not a reference to the verb “to leave”—only to the direction which is the inverse of “right”.
You can (and should!!) read about copyleft here and here, and there's also a whole series of pages about the underlying philosophy of the free software movement.

The origins of the free software movement and copyleft are described in the documentary Revolution OS, which is much more than "a documentary about Linux." And it's freely distributed (because, really, it would be weird if it wasn't), so you have no excuse not to watch it if you haven't already. You can torrent it here or watch the whole thing on YouTube here.

Revolution OS movie poster linux penguin
Really, this should be required viewing to pass 46A
Free software has done a lot for us. Apache's web services are community-developed and free to use, and they host more than 60% of all web pages whose servers we know. OpenOffice and LibreOffice are free replacements for Microsoft's Office Suite. Adblock Plus makes the Internet a less annoying place. I use Notepad++ and GCC to write and compile my C code. I've used Anki to study. I think you get the idea. The free software movement has contributed to some fantastic code out there, and since projects have an entire community behind them, they continue to evolve and create a more diverse and robust collection of software.

So stop hogging all your code to yourself. You're not helping anyone. You jerk.

5 comments:

  1. This was a very well researched post. It reminded me that free software doesn't have to be free as in free beer and also that there was a clear distinction between free and open source software. It also reminded me of the discussion I read before of whether it is true freedom to bind the modified version of the free program to the license regardless of the programmer's wish (GPL forces you to do this, while the BSD license does not). Overall, I was reminded of many things.

    ReplyDelete
  2. Hello Katharine,
    I found your article very informative and incredibly well-written! I agree with your points about why open source is great, including your analogy of the chair being repurposed and how free software is beneficial and helpful to all. However, I've read that in a market composed purely of open source software, closed source software will be very cost-efficient, because the creators of open source software do not have a huge incentive to make high quality programs. Imagine a market in which you have a ton of your repurposed chairs. The open source producers decide to make chairs that are uncomfortable to sit in and made of very low quality material, because they have nothing to compare it to and they generally just care that it gets the job done. Then a closed source company comes along and makes an incredibly comfortable chair with a built-in computer, air-conditioning system, and cup holder. This would create enormous profit for the company because everyone would want this high quality chair and encourage open source makers to also make a chair like that. However, if the market is completely closed source, it is also a problem because all of the competing products are generally high quality and of the same price. An open source producer in this kind of market would force the closed source companies to reduce the price of their product in order for consumers to still want to pay for it. Therefore, I believe that although open source is awesome, it isn't an amazing end-all solution like your article seems to support. Hope to see more great articles from you in the future!

    ReplyDelete
    Replies
    1. Yeah, but the thing is that if Open Source Chairs, Inc is making cruddy chairs, the Community of Chair Connoisseurs could band together and just fix everyone's chairs. Maybe some spinoff Free Furniture Movement Chair Co. will improve vastly on OSC's chair design ("Those expensive chairs have cupholders? WELL OURS WILL COME WITH ALL OF THAT PLUS A ROCKET LAUNCHER"). Then everyone's happy.

      That's the thing with free software: if you don't like it, you (or someone you'll never admit is more talented than you) can make it better -- exactly how you want it -- with no fear of repercussions. And then everyone can improve on everyone else's design. Crappy software won't last very long when there's a community of people who want to make it better.

      Delete
  3. Hi Katharine,
    Wow, this is a very good post. I think you have spent hours on it for researching stuffs. your points about the benefit of open source are correct. the good thing about open source that we can modified other software or application and make it better for people using it later. nice post. good efforts

    ReplyDelete