Benefits of open source code
by James A. J. Wilson on 20 February 2007 , last updated
Introduction
This document outlines some of the advantages derived from having software source code that is open to all to inspect and edit. This is considered in contrast with closed source code, which is not made available for public inspection.
What is source code?
All software applications are built from source code. The source code is made up of the numerous lines of instructions that programmers write for computers to interpret. These instructions tell a computer what to do and how to do it. We can think of the source code as the blueprint for a program and it may be written in any one of the various programming languages used today.
One of the fundamental differences between open source software and proprietary software is that the source code of open source software must be made freely available with the software. Anyone should be able to download the source code, view it, and alter it as they see fit. With proprietary software, you generally cannot view or edit the source code.
If you can program in the language that a given open source application was written in, this is great. With enough time at your disposal you can edit the source code to make the software behave in exactly the way you want it to. But what use is open source code if you lack the technical skills to edit it? If you are an individual user who just wants a computer application to perform a certain task, the answer will be different from if you are looking at software from the point of view of an organisation.
The following section looks at how having full access to source code can benefit institutions, programmers, and, in some respects, non-technical individual users.
Why is open source code useful?
There are a number of advantages that open source code offers over closed source, the following sections examine the most important of these.
Bug-fixing
All software releases contain bugs. Hopefully, the people developing the software will have spotted and dealt with anything obvious, but any development team has only so much time in which to test a piece of software before it is released.
When a bug is spotted in proprietary software, the only people who can fix it are the original developers, as only they have access to the source code. Open source software is different. As a large number of users can access and change the code, bugs tend to be more visible and more rapidly corrected. One of the slogans of the open source movement is that given enough eyeballs, all bugs are shallow [Eric Raymond, The Cathedral and the Bazaar].
In cases where you don’t have the necessary skills in-house it is possible to subcontract to, in theory, any third party since everyone has access to the source code.
Customization
Closed source applications can only be customized or adapted within the scope provided by the original vendor but never outside its boundaries. Open source applications may be customized by anyone with the requisite skill. Thus, open source software can be readily adapted to meet specific user needs. Even if you cannot program yourself, if you would like something added or customized you can generally pay an appropriately skilled software developer to do it for you. The introduction of competition into the market for customisations, as observed in the bug-fixing section above, forces suppliers to offer high quality at a competitive price.
For businesses or educational institutions, the ability to customize source code may enable improvements to the best practice provided by default installations, therefore improving efficiency and possibly providing a competitive advantage.
However, when modifying open source code it is good practice to ensure that, wherever possible, changes are contributed back upstream to the main project. Failure to do this can result in unnecessary complexities when upgrading to newer versions of the software.
Translation
With access to the source code it is easy to translate the language of the software interface. Large closed source commercial software vendors are usually unwilling to translate their products into less widely spoken languages, as the market for them would be too small to guarantee profit.
An example of this is the regional government of the South Tyrol, who developed a version of OpenOffice in the local Ladin language, which has around 30,000 speakers. This is too small a number to be worth commercial investment, but culturally important in terms of the survival of the language.
Avoiding lock-in
Organisations are said to be ‘locked-in’ to software products when the costs of switching to alternatives are prohibitively high.
Proprietary software vendors can lock users in to their products by ensuring that they are not readily compatible with potential rivals. Vendors may then increase the price of product upgrades or support without too great a risk of losing existing customers.
As there is no incentive to use non-standard formats to inhibit compatibility, open source software tends to use open standard formats and there is little danger of being locked-in by a vendor. Even when non-standard formats are used in open-source code, it is always possible to document them from the source code. On the contrary, closed formats used by proprietary software need to be reverse-enginered, a burdensome and expensive process that may need to be repeated if the format is subsequently changed.
Of course, open source software does not come without switching costs of its own. Some administrative and re-training costs must be borne by any organisation that opts to switch between different software. And proprietary software may use open standards, too, as is the case with Adobe’s Acrobat Reader, a closed-source programme for reading PDF files (PDF format is an open standard). Indeed the use of open standards is especially important in ensuring future access to data as it will be possible to find or create alternative programs that conform to the standard.
Mitigation of vendor collapse or product discontinuation
Commercial software vendors go bust or get bought up from time to time. When this happens, there is no guarantee that their software products will continue to be available, supported, or updated. This can result in users needing to switch products, which can be very expensive and difficult, especially if they were heavily locked-in to their current product.
Even with healthy companies, new releases often mean that older software and format versions are discontinued and no longer supported.
With open source software, this danger is greatly reduced. As the source code is not ‘owned’ in the same way that proprietary source code is, it may be picked up and developed by anyone with an interest in a product’s survival. Unless you are part of an organization with very significant technical resources, you are unlikely to want to take on full responsibility for this, but, thanks to the way in which successful open source projects gather user communities around them, where there is a potential revenue generating or cost saving opportunity there will probably be other interested parties willing to continue to maintain the software.
Learning from examples
If you are interested in programming, open source code provides an excellent resource from which to learn, and open source projects provide a practical environment in which to test your skills. Just watching the development process can provide an education in itself. If you choose to submit code to an open source project, it will generally be checked and commented on by experienced programmers. Once you have convinced the project community that your code is of appropriate quality, you may be granted full committer rights yourself.
Being part of a community
By adopting open source software you become part of a community of users and developers who have an interest in working together to support each other and improve the software. The extent to which you engage with this community is up to you, but you may obtain the intangible benefits of goodwill if you do.
Programmers, in particular, can benefit from belonging to an open source community. It can help them to establish reputation and respect, and gain valuable experience.
Cost
Many open source programs can be obtained at no cost or at a very low cost. This is often an important issue for individuals and in many cases this has been the main reason for an individual adopting a particular open source solution over a closed source alternative.
However, other costs may arise: training, consulting, maintenance, etc. As a result, the total cost of ownership may not differ greatly between a closed source solution and an open source alternative for institutions. However, in some markets the difference in price between a closed source solution and an open source solution can be significant.
Is open source useful for you?
To sum up, different people receive different benefits from open source code.
The openness of open source code will be of the least importance to the individual non-technical software user. Such a user will have no wish to study or edit the source code. This user will, however, still benefit from rapid bug-fixing, and, possibly, from improved security.
Software developers may find open source code extremely useful for a number of reasons. Open source is invaluable for learning, as it reveals the workings of real large-scale software programmes. They may also adapt existing software to meet their personal needs, or find employment customizing the software for a third party.
Organisations that engage with open source software can customize it to attain efficiency benefits or to better suit their own working practices, either via in-house development or by paying external developers. They can also protect themselves to some extent from vendor lock-in, or the possible obsolescence of the software they use.
Finally, governments or international institutions can additionally provide better accessibility than may be possible with closed source software, as they are not at the mercy of the commercial requirements of traditional software vendors.
Opinions differ on whether software should play a role in the debate around liberty and human rights. Richard Stallman, the father of the Free Software movement, believes that it does and that free software brings extra benefits in terms of freedom.
Further Reading
Links:
- The Open Source Initiative [http://www.opensource.org/]
- Eric S. Raymond’s The Cathedral and the Bazaar [http://www.catb.org/~esr/writings/cathedral-bazaar/]
- Simon Tatham’s guide to reporting bugs effectively [http://www.chiark.greenend.org.uk/~sgtatham/bugs.html]
- Wikipedia entry on ‘vendor lock-in’ [http://en.wikipedia.org/wiki/Vendor_lock-in]
- The Open University’s press release concerning investment in Moodle [http://moodle.org/mod/forum/discuss.php?d=34002]
Related Information from OSS Watch:
- Roles in open source projects
- Richard Stallman on the road less travelled
- Meritocrats, cluebats and the open development method: an interview with Justin Erenkrantz
- Can you contribute code to an open source project?
- A guide to participating in an open source software community
- Is open source software insecure? An introduction to the issues