An Introduction to Open Source
By Michael Ross
This article was published by ComputorEdge, issue #2418, 2006-05-05, as the cover article, in both their print edition (on pages 14 and 16) and their website.
For software developers and the managers who (try to) direct their programming efforts, the concept of "open source" is clearly understood — even commonplace. But for the average computer user — particularly someone who has no knowledge of or interest in computer programming — the phrase "open source" might seem confusing. Such people, upon hearing the phrase, may wonder, "Source of what? Open in what way?"
To best understand the concept of open source, we should consider its opposite, namely, "closed source". But before considering that idea, we first must understand that the typical computer program can generally take one of two forms: as source code, or as a compiled executable.
The source code of a program comprises the instructions to the computer that tell it how to do what it is supposed to do. Such instructions are written in a computer language, such as Java, but cannot be run as is by the computer (except for "interpreted" languages). Such code is intended to be read by programmers, and not computers directly. When those instructions are translated ("compiled") into a form that can be executed by a computer, it is referred to as an "executable" or "binary" program.
For instance, the Web browser Internet Explorer, developed by Microsoft, is provided to end users as an executable program. But those of us not living on the Redmond campus are not allowed to see the source code that was written and then compiled into that executable program. Consequently, such a program is considered "closed source". We can use the program, but we are unable to make changes to how the program works, aside from the customizability that was built in by the original programmers.
Most end users do not mind being barred from viewing a program's source code, or making modifications to it, even if they had the technical expertise to do so. But there is a growing number of professional and amateur programmers out there who want to do just that. They may have ideas as to how the program could operate better, or they would like to simply see how it works.
In the case of closed source applications, these programmers have been locked out, unless they want to use some sort of reverse compiler to try to get some form of the computer instructions for the program.
The lack of transparency with closed source programs, and the limitations that it imposes upon curious users, have contributed to a groundswell of interest in "open source" code, which is any computer code that is publicly available. As with so many other useful technical terms, "open source" is now being applied to areas other than computer code. In such cases, it similarly refers to the underlying components being viewable by all, and thus open to inspection and improvement.
Does this mean that "open source" is synonymous with "free"? No, because some companies may charge a license fee for the use of their open source product, even though an end user could copy the source code and compile it into the working product, instead of downloading the application in its compiled form. In those cases, the end user is still expected to pay the license fee.
On the other side of the coin, not all free computer applications are open source. In fact, it is likely that the majority of such "freeware" products are distributed only in binary form, and the underlying source code is not made available to anyone outside of the developers of that particular application. More often than not, freeware products are simple standalone applications, developed by a single person, who wishes to keep the source code proprietary, with the possibility of selling or licensing it to a commercial firm, should it prove especially popular with the public.
From the Source
The phrase "open source" is believed to have originated as a result of Netscape's 1998 announcement that they were going to make publicly available the source code to their eponymous Web browser, which they had originally hoped to sell like any other application, but were instead giving away for free (largely in response to Microsoft's undercutting with Internet Explorer).
At first, most industry pundits were puzzled as to what could be gained from such a move by Netscape. That was mostly a result of their viewing the problem from the perspective of market share and financial gain. Unlike open-source pioneers, such as Richard Stallman, the bean counters failed to appreciate the non-monetary value and tremendous potential of opening up what was previously a proprietary application, and thus giving birth to what is now the Mozilla project.
Mozilla is becoming increasingly familiar to many Internet users, largely as a result of their outstanding Web browser, Firefox. Mozilla also makes freely available a full-featured e-mail client (Thunderbird), which, like Firefox, is much more secure than their counterparts offered by Microsoft.
For computer users who can read and evaluate source code, the decision to opt for open source applications, is obvious. But for the majority of humanity — who for some reason insist that there are better ways to spend a Friday evening than poring over computer code — why would they want to choose open source applications over proprietary ones?
One advantage of open source applications are the price: free, or at worst a nominal cost to cover the manufacture and shipping of CDs, or simply the bandwidth expenses incurred by the programmers who created the open source application.
Secondly, advocates of open source products claim that, in general, there are fewer bugs in the source code, as a result of the greater number of critical eyes analyzing that code. In turn, bug fixes are made sooner after discovery, and released to the public faster. This is especially critical for security issues, as Microsoft product users have experienced firsthand, repeatedly.
How can open source software be more secure than that of proprietary products, whose code is kept under lock and key by the software vendors? After all, if malicious hackers can read the open source code and spot any security holes, can't they more easily exploit those holes?
Yet the sword of transparency cuts both ways, because the bulk of the computer programmers looking over open source code, are well-intentioned, and thus have a much greater chance of spotting potential security problems, and immediately reporting them to the product's developers — oftentimes with a suggested fix of their own. These code cowboys thereby have an opportunity to show off their skills, in addition to contributing to what they see as a worthy cause: free software.
Given these advantages, expect to hear more about open source from this point forward. Linus Torvalds, the developer of the open source operating system Linux, allegedly once noted that, "The future is open source everything."
Copyright © 2006 Michael J. Ross. All rights reserved.