Wednesday, November 2, 2011

Open Source: Why it matters to you

Computers have crept up on us on an impressive scale in the last 30 years or so. They were once behemoths stuck in large rooms, but with the advent of the microchip things have gotten a lot more exciting. First came devices like the personal computer that took computing to the masses, but today computers are virtually everywhere - even if you don't know about it. From your mp3 player, to your microwave, to the chip that controls the fuel injectors in your car - embedded devices and smartphones are everywhere.

This places an extraordinary amount of responsibility on those people - the programmers, the electronics engineers and the quality assurance engineers - who create and programme these devices. One little conversion error on your car's ABS system might cost you your life (remember the Mars Polar Lander?), and a mis-scoped variable in a stock market system could even bring the global financial system down. Therefore it is in everybody's interest that knowledge on how these highly critical systems work is not limited to a privileged (or is it powerful?) few, and that it is shared by all. Think of it as science, or law. If only the judge knew how the law works - and the law is something that affects all of us - there would be chaos. (Similarly, in science, people not knowing how magnets work has led to issues hilarity in the past)

So that is the situation - computers are becoming indispensable in the modern world, and the knowledge on how critical systems work is at risk of falling into the hands of a few selected individuals. This cannot end well, right?

Open Source to the rescue

This is where initiatives like the Free Software Foundation (and their awesome General Public License) come into play. Under the terms of this license, the source code - the knowledge, the step-by-step instructions of how software works, is released to be viewed by all. Not only can you view it, you can modify it to meet your requirements (or to fix bugs) and share it freely. Just like law and science are taught freely, and is accessible to all with the relevant domain knowledge, the knowledge of how software systems work can also be shared freely.

This is not just a great theory - it has proven results. It is what makes Linux a great kernel (which powers most of the servers and embedded systems that are critical for the survival of the modern world), and Firefox an excellent browser, and all your servers run on Apache, and your smartphones on Android. It gives the power to harness the great infrastructure we've built back to the users, the masses, the community. It makes sure that one select group doesn't get to hold the world for ransom. It makes sure that the your brakes won't fail - because half the world's programmers have had a look at that code and have certified it as bug-free. It lets you sleep soundly at night, knowing that the future of the world is securely in the hands of a community of global programmers - who are just as concerned as you are about the reliability of the software.

"Given enough eyeballs, all bugs are shallow" - Linus' Law

Note: I know that 'open source' does not necessarily mean 'free' as in free speech, but I thought including all the different licenses in the post would be confusing for casual readers.