Open Source Software

Submitted by felixruina on 21 March, 2008 - 19:02.

If you try googling "Open Source" in order to try to find a good definition of what Open Source Software is, you'll actually find two related, but not identical, definitions. On the one hand you will get the strict definition of "open source" which simply means that the source code for a particular program (the instructions that make the program run) are made available so that anyone can look and see how the program runs.

The more important definition, however, is the one that is tied up with "Free Software". Open Source is a necessary part of Free Software, and so often when one speaks of Open Source, one actually means Free Software.

(This is a longish article, so click here to keep reading.)

So what is Free Software?

Well, this is a pretty complex question. The Free Software Foundation uses 4 different criteria (freedoms) to determine if a piece of software is truly "free". Those criteria are:

  • The freedom to run the program for any purpose
  • The freedom to study how a program works and adapt it to your needs (*Note that this is where "open source" comes into the definition)
  • The freedom to redistribute copies so you can help others
  • The freedom to improve the program and release your improvements to the public, so that the whole community benefits.

Wow. These are some pretty serious criteria, aren't they? But, if you look at them, and if you try to imagine how great it would be for the consumer if software was distributed this way...it sounds pretty great, right?

But on the other hand, if you're someone who is spending blood, sweat, tears, and a whole lot of money to produce software, these criteria don't sound very good for business, do they?

And that's where the issues of Free Software begin to get tricky. The idea of free software sounds great from a consumer's point of view (in fact, some have called these 4 criteria the "software user's bill of rights"), but we live in a capitalist society--it sounds downright communist to ask companies to produce software that can then be freely changed and reused and redistributed without them making any money.

So, given this big, glaring difficulty with Free Software, why do people think it is so important? Why is there even such a thing as a "Free Software Movement"? It's only computer programs, anyway...right?

Well, yes and no. 50 years ago, there would have been no need for a Free Software Movement or the Free Software Foundation, because computers were fairly rare, incredibly expensive, and not used for very much. But nowadays, think of how much of our lives are determined by contact and interaction with computers. All of our money is controlled by computer software. Many of the most powerful weapons in the world are controlled by computers. Almost all of our communications now are computer driven (telephone, cell phone, email, text messages...even the post office!). Even transportation (cars, trains, planes) has become more and more dependent on software and computer systems. And this fact of our lives is not changing. In fact, we becoming more and more reliant on computers everyday.

So here's where the catch to all of this comes--all of these computers that run our lives are completely useless without software to run it. Now, as a general rule, we take for granted that when we put our ATM card into an ATM machine, the computer software that is allowing us to take the $50 out of our account is not beaming that information to some thief in China who is going to wait for our account to be nice and fat before he cleans us out. We take this for granted...yet...how do you know that this is not the case?

Now, I admit that this is a rather paranoid example. And, no, I'm not frightened to use the ATM. But, this is a good example of how something we often use every day could be compromised, simply because we do not know exactly what the software that is running in that ATM is doing. An actual real-world example of this would be the new computerized voting machines that many states are trying to now use. How easy it would be for the programmer of those systems to make it possible to change voting results. How easy it would be, that is...unless the source code to those voting machines was made available for everyone to look at.

The fundamental idea behind "Free Software" is that we should have the freedom to use, understand, and improve on software--because it has become fundamental to our society. In order for our society to remain free, the software that runs it must also be free.

Other Benefits of Free Software

Now, Free Software is not only about paranoia-laden nightmares of world domination by rogue hackers. There are other important benefits to software produced in a "free" way--and these benefits are really what are driving the free software movement now.

The first, and most important benefit to free software is that it has the potential of making software better.

This point may fly in the face of much of what you may have heard about "open source" or "free software." Many companies have done their absolute hardest to try to show that open source software is far inferior to their own proprietary software (read: Microsoft et al.). But, the simple fact is that free software, by definition, can only be improved by the open source process.

Consider this little mind-experiement. Let's assume we have two equally talented programmers. They both produce a piece of software that is equally good. However, one of the programmers frees her software and releases the source code. In one year, the closed-source programmer will only have his talents to draw upon in making the software better. But the open source programmer will have a community of users and programmers all helping to improve upon the original design. And maybe other programmers take her original program and do something new and completely different with it, something that the first programmer never could have attempted or even thought of.

This is the potential power of open source software.

The perfect, darling example of this process at work is the Firefox web browser. Firefox actually began its life as Netscape Navigator, which most people will remember as being the loser of the late 90's browser wars. After the war was lost, Netscape open sourced its browser, and Firefox has since become one of the real driving and innovating forces in the browser market. Notice how IE8 now has tabbed browsing and helps block popups? That is largely due to Firefox's influence.

Secondly, software can be customized more easily.
This is one of the most important philosophical aspects of Free Software. The idea behind this is that software should be able to be used by anyone and everyone, because computers are becoming one of the best and most prolific means of sending and receiving information. However, when software is designed, it is usually designed with a particular type of user in mind. For example, there are many different types of email programs available. There's Outlook, Outlook Express, Thunderbird, Apple Mail, Evolution, Kmail, etc... Each of these mail applications was designed around a particular type of user. And someone who finds Thunderbird to be a great mail client would probably find Outlook or Evolution to be too bloated and difficult to use. Yet, for large businesses, running their own exchange servers, Outlook or Evolution is exactly what they need, because the others don't provide the features they need.

It is in these types of situations that Free Software can really shine. The idea is that if there is a particular program you like that works well (say, Thunderbird), but for your particular situation a necessary feature is missing, these things can more easily be added because the source code is available and customization is encouraged.

Another really important example of this important aspect of Free Software can be seen in the number of languages the major Linux desktops (GNOME and KDE) have been translated into. Translations for Free Software are much easier to impliment because absolutely anyone can contribute to Free Software. So, if there are two users of GNOME who speak Ancient Lapine, and one of those users can translate, then a Lapine translation of GNOME can easily be contritbuted to the project so that all future Lapine-speaking GNOME users can benefit.

One final example of this at work is in the plethora Linux distributions that are available. You may have heard of some of the major Linux OSs (like Fedora, Ubuntu, or Suse), but there are thousands of others, each tweaked to be most useful to a different group of users. There are many national governments, even, that have gone through the process of creating "National" Linux distributions. (e.g. India, Spain, China, etc...)

Conclusion
Ultimately, Free Software is about freedom--freedom to know what your software is doing, freedom to use software as you see fit, and freedom to spread knowledge through the use of software and technology. Freedom has become such an overused word over the past century that I think many of us have forgotten how important of an idea it really is. The strange thing is that most of us think of freedom only in grand, expansive, abstract ways. Free Software is an example of freedom reaching down into the very workings of our society. And that is why I believe it is important.

I don't believe that every piece of software necessarily needs to be Free Software. And, in general, I would not say that companies producing proprietary software are evil. But I am thankful for the fact that there is Free Software and a Free Software Movement. And as long as I have a choice in the matter, I'm going to give my support and my monetary vote to those who produce software with a philosophy of freedom and charity, rather than those companies who are motivated by the bottom line.

Next week we will begin our Free Software Reviews in which I will highlight a piece of Free Software and compare it to its proprietary counterparts.