What does the term “Open Source Software” mean?

What does the term “Open Source Software” mean?

Usually before a program is distributed it is compiled. When a program is compiled it is translated from the understandable language used by the programmers (well, understandable to programmers anyway) to a language that is faster for the computer to understand but completely meaningless to humans. A compiled program is a black box. You can see the program, observe what it does, but you cannot see _how_ it works. If there is an error in the program you cannot open it up to see where the problem lies. It is near impossible to edit the compiled copy of a program. Most companies release only compiled programs to prevent competitors from using their code in competing products.

With access to the source code it is possible to see all the inner workings of a program. This makes it easier to find and fix bugs in a program.

When the source code is available, anyone (ok, any programmers) can make improvements to the program.

Many, if not most, open source programs use a license similar to the Gnu Public License (GPL). The GPL gives all users the rights to the source code of the program licensed under the GPL. Any person or company distributing the program must also provide the source code. Additionally anyone making improvements to GPLed source code, must release those improvements out to the public under the GPL.

The advantages of open source software to the average user are many.

First and most obvious, almost all open source software is available for free.

Second is that the more users using a particular program the more people are looking at the source code. Some of whom will be making improvements. In their free time many programmers work on open source software projects that they use.

Third, open source software has the potential for an extra long life span. Their are many highly useful free software programs that were written by a single individual for their own use. They let others download it for free just to be nice. Eventually many of these programs stagnated as their programmers either lost interest in the program or got too busy to spend any time working on it. Because they never released the source code no one else was ever able to take up the project and keep the program running on the latest operating system. Other programs stopped being free as their programmers found that there was such demand for the program that they decided to start making some money off of all their hard work (I have nothing against this, I’m just cheap).

Open source has often been likened to communism. It isn’t but even if it were it wouldn’t’ be _bad_ communism, more like what communism was supposed to be. (Just to make it clear, I’m not communistic, I am a Conservative and capitalistic all the way). Most of the volunteers on an open source project are the type of people who enjoy writing programs. They take part in the project because it is software they use, something that interests them or just to get a little geek fame. (I can say geek because I am one, just not the programming type. There are many different kinds of geek, see the Geek Code)

Several companies are trying open source for their programs. Netscape, now owned by AOL / Time Warner released the source code to their flagship product, the Netscape communicator browser, HTML editor and email client. The result, after a complete rewrite (pretty much not using any of the stuff that got released in the first place) is the most standards compliant browser on the market (trust me, thats a good thing).