Understanding open source Part 1
Open source software is big news right now. We've heard from big-name corporations who support it (like Novell, and IBM) and oppose it (like Microsoft). A number of high-profile intellectual property battles concern it. You probably know an open source zealot who's spent some time extolling its virtues.
According to the Wikipedia, "The debate over open source vs. closed source (alternatively called proprietary development) is very much a religious war." So it's not surprising that there's a lot of misinformation floating around about open source, clouding the issues. This article seeks to set aside the religious arguments and dispel some of the misconceptions by explaining what open source is and exploring its advantages and disadvantages.
Open source software is a good thing, and has an important place in the tech sector. Closed source software also has its place, and the industry will benefit most from cooperation between the two.
What is open source?
The "source" in open source comes from source code. Computers understand a language called machine code that consists of very simple instructions written in ones and zeroes. (Think of the ones and zeroes as the alphabet and the instructions as words or statements.) The instructions tend to be simple things like, "Take these two numbers and add them."
It's tedious to write complex software out of such simple instructions. So, various "higher-level" languages have been invented over the years: languages that look a lot more like a human language, but are still structured so they can be translated into machine code by a program called a compiler. Most software now is written in one of those languages, and those human-friendly instructions are referred to as source code. A handy side effect is that I can't look inside a program on my computer (such as Microsoft Word) and see how to make a product. Compiling the source code protects that secret and is often considered critical to a company's competitive edge.
Actual opinions vary on exactly what open source means, and how broad a category it defines. At its most basic, the definition is simple: It's software for which the source code is publicly available, free of charge. In addition, most open source licenses allow anyone to use the product and to modify and redistribute the source code free of charge. The terms vary from product to product--there are a lot of open source licenses out there--but all open source licenses allow free-of-charge, legal access to the source code in some form.
Common aspects of open source software
While open source projects vary widely in nature and in the terms of their license agreements, the following are true of most established open source products:
Centralized organization. Open source projects are often volunteer efforts. Because anyone can download and modify the source code, an open source product may have developers all over the world working on it. However, there is usually a central person or organization overseeing the development, testing and release of new official versions of the product, which means that new releases work much like new releases of commercial software.
Fee-based support. There is money to be made in open source, and some is in customer support. Although users can find help on public forums and mailing lists, many major open source projects have one or more companies (sometimes the company that oversees the project itself) that provide support for a fee.
The user is the developer. Because source code is available, and because open source users tend to be more tech-savvy to begin with, many users of a given open source product are actively involved in its development and testing. The greatest advantage of this is that when a user finds a problem, he or she can--and sometimes will--fix it. As open source's popularity increases, the percentage of users of whom this is true will decrease, but non-technical users can always submit bug reports and suggest features.