Over at itwire, the Linux pundits and Windows pundits are trading blows over who can come up with more reasons to choose one OS over the other. It's not really worth reading, just the same old sentiments you find on blogs all over the net tallied up, rife with half-truths stretched thin.
There are a lot of little reasons I enjoy doing my work (or play) on Linux instead of on a Windows box, but I hardly think most people are going to be tempted to switch one way or the other over things like doing updates or cooler desktop effects (side note: cooler desktop effects haven't had people migrating en masse to Vista, why should anyone think compiz will bring them to Linux (even if it is better)).
There's really only one worthwhile advantage Linux has, and in my opinion it's a big one: Freedom.
Oh no, here goes another FOSS nutter talking about freedom again...
Wait, bear with me, I promise not to get sentimental...
Let's go back in time
About 20 years ago, around the time I got my first PC, home computers couldn't do much of anything. Most people just played games, typed text documents, or maybe dialed up to BBS systems. There were some specialty applications (I mostly used mine for MIDI sequencing), but for the most part a computer was a tool that most of us could live without.
Things have changed. Think about the things we do with computers these days: we communicate with people via email and chat. We meet up with old friends on social networking sites. We research and learn on the web. We store and manipulate family photos and videos. We play games, watch movies and tv shows, listen to music, buy just about everything, and keep up with the news all through the internet.
And that's just your personal computer. Every retailer, bank, insurance company, utility, or credit card company you deal with has your information in a computer. Every time you vote your vote gets processed in a computer. All your interactions with various governments (getting a drivers license, buying a house, etc) are logged in computers. Your medical records are stored there.
I could go on, but the point is that computers are very important to your life, whether you are a "computer person" or not. And they are only getting more important with each passing year.
Now, when we talk about "computers" like this, let's understand that the actual hardware involved is of little or no consequence. What we're really talking about is software. So it's really not a question of "computers" being important, but rather of software being important to your life.
Ok, so we can see that even if you are not a techie person, software, and thus issues surrounding software, are important to you, because software impacts countless areas of your life. So let's talk a bit about software.
Let's suppose you have been hired as CTO of a small business. Your first job is to choose an office suite for your company to standardize on. You get a visit from a small software startup called ExampleSoft. ExampleSoft is hawking its new product, ExampleSoft Office, or for short, ESO. ESO is an amazing product. It's fast, stable, and packed with features, and it's so intuitive it practically reads your mind. It makes Word 2007 feel like Ed on a VT100. In short, it's the best office suite ever created. But let me tell you three things about ESO:
Now, is ESO the best choice for your office? If you're a smart CTO, you're saying "NO WAY!". Why?
Because you know that if ExampleSoft goes belly-up next year, ESO is gone. You won't be able to buy any more licenses. Your files will not be accessible in any other piece of software, and you won't be sure that it will continue to work if you upgrade your OS or other applications.
Even if ExampleSoft doesn't go away, you can't interoperate. If you get files in Microsoft Office or OpenDocument format, you'll need another product to open them up in. And if you need to provide files in another format to someone not using ESO, you can't!
Finally, because your data is locked up in a proprietary format, you won't be able to find third-party support for your data. For example, if you want to move into a content-management or workflow system, you are out of luck (unless ExampleSoft makes one). In short, you are locked in to ExampleSoft for 100% of your productivity software needs.
We can see from this that there are things about software more valuable than raw functionality alone: longevity and interoperability. How can these things be attained?
There are two ways to ensure that software you use will be around for a long time to come:
Buying from a big company will ensure that your software will be around for years to come, right? Except, what if the company decides the software is no longer profitable? What if they decide to radically change it in a way that no longer suits your needs? What if they decide to price it at a point you can no longer afford? Or what if, against all odds, the company falls apart?
We don't expect to see Microsoft or IBM come apart at the seams any time soon, but they have certainly killed off some legacy products or radically altered some of their products throughout their histories. But the real problem is that this point of view encourages monopolies. It's sort of the "everyone loves you because everyone loves you" syndrome. What happens to smaller software houses? How does anyone compete?
Open source code can fail if the developers lose interest and nobody picks up the ball. But as long as SOMEONE wants development to continue, and that someone can interest a developer to do so, then development can continue. There are no legal or otherwise artificial barriers stopping it.
Interoperability is a big buzzword these days, and big companies like to talk a lot about "working together" to interoperate. There are basically two ways to interoperate:
Well, the first option certainly works, as long as you don't mind being forced to use the same product everyone else has decided to use. And of course, you create a monopoly in the process, causing all the usual glorious problems monopolies bring with them (lack of innovation, high prices, poor customer service, etc etc).
On the other hand, if we use standards, companies are free to innovate around that standard and you get to use what you want. In addition, if your data is stored according to standards, it will be accessible in decades to come (I can still open the standard MIDI files I created back in the early 1990s. But the proprietary format files? Nope. I have songs forever lost because the software I made them with changed and won't open the files any more). If you doubt the usefulness of standards in technology, think about the world wide web. Do you know what browser I used to post this article, or what OS? Does it matter? Nope, you can read it with whatever browser and OS you happen to prefer. That's because the technology behind it is an open standard (HTTP, HTML, and CSS to be exact). Same goes for email; can you only send Gmail to other Gmail users, or can thunderbird, outlook, or hotmail users get it as well? More to the point, would it be better for email users if we all had to use the same proprietary email client to communicate?
Getting to some kind of point
I hope you're beginning to see what I'm driving at here. By using software with open source code, you get the advantages of longevity and interoperability without encouraging monopolization (and thereby stagnation) of the market. This is a big benefit of using Free software, but not the only one...
Let's talk food!
I do a bit of cooking and playing about in the kitchen, and I certainly love to eat; however, I'm neither a food scientist or trained chef. So I might ask, what use is it to me that the FDA requires food manufacturers to publish the list of ingredients for their food on the label? I mean, I don't know what guar gum or carnauba wax is; I don't know the difference between yellow #5 and yellow #7. I'm certainly not going to attempt to reproduce, say, Twizzlers or Bisquick in my home kitchen based on the ingredients list. So what's the point? Why do they bother? Is the FDA doing me a favor, or just wasting everyone's time and money being bossy?
Well, naturally, it's a very good thing that the FDA requires ingredient lists. It's a form of accountability; it means that if something in your breakfast cereal turns out to be toxic, they'll stop using it and probably issue a recall. If nobody knew that yellow #17 was in Cheapie-O's, and it was discovered that yellow #17 caused gangrene of the earlobes, the makers of Cheapie-O's would probably sweep the whole thing under the rug and hope nobody notices their rotting ears while they take their time searching for another yellow dye. Moreover, if you suffer from allergies to peanuts, gluten, or nougat, you have fair warning that such things might be in the super-choco bar you're about to eat.
In other words, even though I may not be the one to discover the dreadful truth about yellow #17, or confront Cheapie-O's about it, or even ever have any knowledge of the situation, I know that there are those who DO know, and DO take care of these things, and THEY have access to the information because it's printed on every box.
And so, ask yourself, if you were given food from a manufacturer who you knew actively REFUSED to print the ingredients on the labels, would you feel safe eating it?
What does this have to do with software?
You are probably not a programmer. Even if you are, you probably wouldn't spend much of your time digging around in the source code of programs you use (assuming it's available). Programmers usually have better things to do, like writing their own programs. But not all of them. There is a community of folks out there in the world who are interested in looking at the source code of other people's software and inspecting it for bugs, flaws, or malicious code of any kind. Thank heavens for these folks.
Unfortunately, there are a lot of companies who point-blank refuse to allow their source code to be seen. Actually, it's the vast majority of them. Scary, huh? Ok, so there are somewhat legitimate business reasons why they don't allow the code to be seen; they're worried about piracy or competitors seeing their super-secret sauce. But shouldn't you be a bit worried that none of the "food" you computer "eats" has an "ingredients list" available?
Open source software still has bugs and flaws. It doesn't always get a thorough enough review, especially the less-popular projects. But it's all out there, the ingredients are right there on the back of the label. And even if you don't know what sodium benzoate is, you can be sure that the folks who DO know can keep an eye on things for you.
I've gone on too long already, but the real point here is that so many of these Windows vs. Linux vs. Mac comparisons get caught up in trivial bits about this feature vs. that feature or this interface vs. that interface. The concept of free (as in freedom) code is sort of swept aside as a "yeah that's cool, but I don't care because I'm not a programmer". Freedom is the core feature of Linux, BSD, and other free, open-source systems. If you really contemplate its implications, the rest of the reasons seem pretty trivial.