by Bill Moran
My experience in the IT business has shown me that a large number of people do not understand open source software. I've put this together in an attempt to explain what open source software is, why it is better than closed source software, and how it is a viable business tactic. In particular, I will dispell the follow common misunderstandings:
It can be very difficult to compare the business of open source software to any other business, because it seems there is no other business that is successfully using such a model. This is false. The automotive industry uses an open source engineering model, primarily because it is impractical to do otherwise. While the automotive industry is very different from the computer industry, I'll draw a number of parallels to illustrate the advantages of open source software.
First, to those who may be thinking, "Cars aren't open source." let me demonstrate my point.
If automobiles were not open source, the hood would be welded shut when you purchased one. Nobody would be able to work on your vehicle other than the company that manufactured it. In fact, nobody would even be able to review the construction of your vehicle. You could paint the car a different color and make some other cosmetic changes to it, but more extensive modifications would not only be difficult, but illegal. The contract you signed when you purchased the vehicle would prevent you from changing, or even examining, any of the operational parts of the vehicle. Later, I will show how this openness benefits the automobile industry.
In reality, you can easily examine the entirety of an modern automobile and gain an understanding of how it works. The only requirement is the proper tools. You will not be breaking any laws by disassembling a fuel injector to see how it functions, and this point will become important as I demonstrate the advantages of open source in the software industry.
Open source can be difficult to understand because the concept of "source code" is not familiar to many people. However, the concept if relatively simple.
A computer operates by reading through a list of instructions and executing each instruction in turn. These instructions are called "machine code". Programming in machine code is difficult and time consuming, each machine code instruction can only do a single, very simple task. Thus, even a simple computer program requires many thousands of instructions.
To avoid this complex and difficult problem, programmers use what is called a high-level language. A high-level language reads much like the language we speak, and a few words can specify a large amount of the computer's behaviour. It is also (comparitively) easy for other programmers to read and understand a program written in a high-level language.
Since the computer doesn't understand the high-level language, a process is used to convert it to machine code before it is used. This process is called "compilation". Modern compiler programs are extremely complex. In addition to converting the high-level code to machine code, they also optimize the instructions to improve performance. Unfortunately, this obliterates any trace of the original programming logic, such that it is impossible to reverse the process.
Open source software is software in which the original, high-level program code is made available to the end user.
Some companies have promoted the idea that open source software is bad for business and the economy as a whole. They claim that since the software is free for anyone to use and adapt, it is impossible for anyone to make money off of it, thus it hurts the economy by stealing jobs from programmers.
To understand how wrong this is, I'll return to the comparison to the automobile industry.
If your car were not open source and you had difficulty with it, the only place you could go to repair it would be the original dealer you bought it from. They would be the only people who knew how (and had the legal right) to open the hood or do any sort of work on the vehicle.
However, since your vehicle is open source, you can take it to any one of many automobile mechanics to have it worked on. You even have the choice of purchasing replacement parts from any number of dealers and doing the repairs yourself. Because your car is open source, there are many companies offering services for it, as well as many companies who manufacture parts for your vehicle.
This competition does many things. First, it keeps prices at an honest level for the consumer: the manufacturer can not artificially inflate prices or services, because competition prevents it. Second, it encourages small and medium sized businesses to establish themselves offering products and services to compete with the manufactures (this also make the products and services more available to the consumer). Third (and perhaps most important) it allows innovation to come from places other than the vehicle manufacturer. As an example, advanced automobile security systems (motion alarms and the like) were available as aftermarket addons long before the manufacturers offered them.
In the case of the automobile industry, open source has also spawned a completely seperate business. The amature racing market could not exist if cars were not open sourced so that modifications to the engine and suspension (necessary for racing) could be done.
It should be pretty clear that the open nature of automobile technology does not hinder the economy in any way. In fact, it creates more jobs, more competition, and actually creates additional markets that would not exist if automobile technology were closed-source.
There are many parallels in the software market. Many companies, such as Red Hat and MySQL AB have come about because of open source. The number of local internet service providerships that rely almost exclusively on open source software is staggering. In fact, it's unlikely that Internet access would be a cheaply available as it is if it weren't for open source software. Many companies use open source software to control their products because it would be too expensive (or impossible) to do so otherwise (Tivo, although now defunct, is a good example). Also, closed source software would be more expensive if there were not open source alternatives to keep the prices reasonable (in fact, in nitch markets where open source alternatives are not available, software prices are sky-high).
The concern has been raised that open source software is less secure than closed source software. On the surface, logic seems to support this claim. After all, how can something be secure when anyone can see how it works.
This lie starts to fall apart when you use the automotive industry as an example again. First off, the technology of locks and keys has been open source for a long time. (This shows another advantage of open source: the automotive industry did not have to invent a new security system, they could use an existing one: the lock and key) It is commonly held that locks and keys are lousy security because they are so easy to "pick". Yet, any insurance agent will tell you that the best way to reduce the chance of your car being stolen is to lock the doors. Why is this? The reason is because the development of the technology of locks and keys has progressed faster than the development of methods to bypass them. The reason for this is very simple: there are more people who want the system to be secure than there are who want to be able to circumvent it. Thus, when the system is open source, it advances toward security faster than methods of circumventing it can be developed.
Additionally, the open source nature of automobiles has allowed independent developement of security measures to take place without the endorsement of the automobile manufactures. In fact, automobile manufacturers have only recently offered the best security systems pre-installed in their vehicles.
Open source software actually benefits more than the automobile industry in this area. The main reason is a mathematical truth that is not immediately obvious to non-programmers. The fact is this: some security measures are uncrackable. However, there is no known way to guarantee that a particular measure is uncrackable. The only way to be confident is to allow it to see use for a long period of time, and if it does so without failure, it can be reasonable labeled as secure.
With open source software the amount of testing and real-world exposure a particular security measure gets in a fixed amount of time is far more than in closed source software. This is because criminals can see the code and therefore much more quickly expose weaknesses. Thus, poor techniques are quickly fixed or discarded, while successful techniques are quickly subjected to heavy testing and shown to be reliable.
Whether or not you believe this explanation, there are certain facts that stand for themselves. First off, most of the security measures used by closed source software are the ones developed by open source software. This demonstrates that even the closed source software developers admit that the testing methods undertaken by the open source community are superior to their own methods. Secondly, the facts speak for themselves. Open source operating systems have a much better security record than closed source. Compare the number of published security holes in Microsoft Windows to those of OpenBSD. And security holes in OpenBSD are easier to find than in Windows because the code in able to be read.
Many people would think this last statement amazing, but the reality is this. Finding security holes is the most difficult part of fixing them, thus OpenBSD has less security holes primarily because they are so easy to find.
It is often suggested that open source software is not as reliable or as professionally designed as closed source. It's often suggested that "a band of anarchistic hobbiests could never develop software of the same quality as large companies."
Returning to the automobile comparison, there are many customization shops that can improve your car beyond what the manufacturer provides, and there are many automobile hobbiests who have modified their vehicles to be far superior to anything they could purchase.
But this lie falls apart much faster when addressed directly, because it's completely based on false assumptions.
First off, the lie is meant to make the casual observer believe that anyone can simply change the program code of an open source project. This is nonsense for two reasons. First off, all open source software is controlled by a well structured organization. The fact that these organizations are not-for-profit does not diminish their ability to control code development, and code is only added to the software after it has been reviewed by seasoned and trusted programmers. So while it is true that anyone can contribute code to an open source software project, it is not true that all code is accepted as an additon to the project.
Secondly, most open source software developers aren't even hobbiests. Do a little research and you'll find that most open source projects are hosted by large companies who have a vested interested in the success of the software, and even have full-time employees dedicated to improving software. Other developers are professional programmers who use the software themeselves, and thus have an interest in the quality.
But a deeper investigation exposes this lie even more. It is often proposed that someone could plant a "back door" in an open source program (to allow a criminal to remotely control your computer). This is impossible. The chances that a "back door" could slip past all the code reviewers is so slim as to be impossible. It's much more likely that a closed source software could have a back door intentionally programmed into it to monitor your use of it without your knowledge.
If I were to tell you that Saturn made better cars than Ford, there may be some reaction on your part. If I then told you that the Saturn got better gas mileage, required less maintenance, provided a smoother ride, had less road noise, and had more luxury features, you may or may not take my word for it, but I'm telling the truth. Of course, I never bothered to tell you that I'm comparing a 2004 Saturn to a Ford Model T. If I had, you would have discredited the entire comparison right off the bat. Yet closed source companies use this technique as their sole basis for the "ease of use" argument.
If you compare any modern software to the open source systems of the seventies, of course you'll find the open source software inferior. But this is the real world, and real tests and real experiences show that modern open source software is as easy to learn and use as closed source, and many reports claim that it is actually easier. The fancy graphical tools that Windows and Mac users are familiar with are abundant in open source software.
The primary goal of this marketing slant is to convince the user never to try open source software, since that prevents them from even finding out the truth.
I hope I have presented a clear explanation of the advantages that open source software has over closed source. My intention is to provide this information in a manner that is useful to non-technical people. Please feel free to link to this article any time you find it useful to do so.
Additionaly, I intend to maintain and improve this article. In particular, I feel it is too long and would benefit if the information could be presented with less verbiage. If you have suggestions for improvement, please tell me.