What a nice chair. |
You're welcome, Rover. |
Bear with me: yes, you're still reading a CS blog. |
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,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.
(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.
Stallman himself has terrible-quality webcam videos explaining the philosophy behind free software: (CS celebrity alert!)
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.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.
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”.
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.
Really, this should be required viewing to pass 46A |
So stop hogging all your code to yourself. You're not helping anyone. You jerk.
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.
ReplyDeleteHello Katharine,
ReplyDeleteI 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!
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.
DeleteThat'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.
Hi Katharine,
ReplyDeleteWow, 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
Codelobster editor works much better for me
ReplyDelete