The only real difference between Open Source software and Closed Source software is that with Open Source software, the source code is available for review and modification. This difference, however, results in a number of key benefits for the users of Open Source software. To understand how these benefits occur, it is useful to keep in mind the implications of opening source code to the world.
In an active Open Source project:
- A lot of people will see the code and many of these people will be developers. In most cases, these people are not being paid to look at the code. They are typically people who have some interest or need in the project.
- People who have a need or interest in the code will invariably make suggestions for improvements – either bug fixes or enhancements. Usually they do this because they want or need the bug fixes or enhancements for their own benefit.
- When these bug fixes and enhancements are integrated into the project, the project is improved in some way – either in functionality or in quality.
This process is very clearly described by Eric S. Raymond in his essay, “The Cathedral and the Bazaar” and his book by the same title.
So, how does this process benefit the end users of Open Source software?
Reduced Cost of Ownership
In a Community Open Source project like Apache and Linux, hundreds or thousands of people are contributing their time and energy to constantly improving the project. They are, by and large, doing this because they want the benefits of the improved project. All of the end users get the benefits of all of this effort for no monetary cost. In a Commercial Open Source project, the company gets the benefit of hundreds of people looking at their code and also suggesting improvements. This effectively provides an expanded development team for no additional cost and allows the company to sell their systems for less than their Closed Source competitors. People might wonder why anyone would make modifications to a Commercial Open Source project and then give them to the company for free. The answer is because it benefits the people making the change. They need some feature or some bug fix and they want it to be in all future releases of the system.
Increased Control and Flexibility
With Open Source software, the use has much more control and flexibility than with Proprietary software. In fact, the desire for more control was one of the key reasons that the Open Source movement began. As described in The History of Open Source Software, Richard Stallmans frustration with the inability to improve a proprietary laser printer driver was one of the reasons he began the Free Software Foundation. With Open Source software, companies can make improvements instead of hoping that the vendor will make the improvements.
Reduced Vendor Lock In
With Proprietary software, users can get locked in to one vendor. Once they commit a major portion of their IT infrastructure to one system or vendor they are often stuck using that vendor for a very long time. They are at the mercy of the vendor’s release schedule and pricing. If a vendor decides to end-of-life a product, the user has to either continue to use an unsupported product or go through a costly conversion process.
With Open Source software, users do not get locked in to a vendor. For Community Open Source projects like Apache, there is no vendor. For Open Source projects like Linux where there is both a community and one or more commercial vendors, users can move between vendors or work with the community.
Higher Quality and Reliability
There is a clear relationship between the number of people looking at a problem and how quickly it gets corrected. This effect has been termed “Linus’ Law”. The law states: “given enough eyeballs, all bugs are shallow” or more formally: “Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix will be obvious to someone.” Many proprietary software companies will attempt to dispute that software developed in an open manner can achieve higher quality than software developed in a closed manner. However, examples after example have shown that this is the case.
Easier Evaluation Process
One of the often overlooked benefits of Open Source products is that the cost of evaluating the product is greatly reduced. With Community and Hybrid Open Source products, users can simply download the product, try it and see if it is something they want to use.