2007-11-21

Wizard Wednesday: OSS Pt. 1

This is the first part of a series of my thoughts about open source software (OSS). The following information is my impressions and understandings of open source software, and is not necessarily reflective of the beliefs and intentions of the open source movement and the GPL (although I do my best).

So what is 'open source' anyway?

Design Philosophy


There are two main competing views of software design and distribution today, about what it takes to design, produce and distribute a good piece of software.

The first one has been - and continues to be - the most common. It states that a good piece of software requires a large budget, usually supplied by a large corporation with a good design team, bug testers and support department.

The second one is less well known, and is a direct offshoot of the internet generation, which recognizes the power of the internet in bringing together people who have very little in common geographically, but much in common in their interests. It says that a good piece of software just requires someone to get it started, and then others will pitch in to help make it better. This is the guiding principal behind OSS.

So why is it called 'Open Source'?

Source Code


When a program is written, it is written by a programmer in a programming language. The programming language is basically a set of commands with a set of syntax rules which allow the programmer to tell the computer what to do. When the program is in the process of being written, the files which contain these sets of commands are called the 'source code'.

With your standard payware software, the end user never sees this source code, and has no access to it; all they get is the final product to use. With OSS, this source code is 'open'. When you download or purchase the program, you also have the option of downloading the source code for it. This means that for those who have some programming knowledge, they now have the option of not only using the software, but of modifying it to suit their own needs and preferences.

For example, if you were to download Microsoft Internet Explorer (I know, I know, it comes preinstalled; just bear with me) you can only use it for browsing the internet, and regardless of features you feel it is missing, you just have to deal with it. But if you download an open source internet browser, such as Mozilla Firefox, you now have more options. Want Firefox to play music? Okay, you can download the source code and add code to enable it to be a media player as well.

This is how OSS develops. In most cases, there is a single group of developers who manage a given project, and if you have features you think the program should encompass, you have three options:

1) Submit a feature request to the developers. They will take your suggestions along with other people's input and decide which features to implement in the next revision. This is the same way that almost all closed source software (CSS) works.
2) Write a plug-in. Plug-ins are what makes Mozilla Firefox so popular. A plug-in is a piece of software that plugs in to the original code to add features. Much CSS contains the availability for plug-ins as well.
3) Rewrite the source code, and redistribute it under a different name.

But what about the legal ramifications of this last option? If you somehow managed to procure the source code for Microsoft Office, what would happen if you modified it and started distributing it as Macrosoft Orifice? Probably, you would quickly receive a Cease-and-Desist from Microsoft, followed promptly by a lawsuit.

We'll look at the open source licensing philosophy and the GPL next time.

For more information about the open source movement, you can look it up on Wikipedia or wait until next time.

No comments: