1. Source Code
The term source code describes the human-readable versions of the programs
which run computers. A central tenet of the free and open source movement is that the
source code should be available to all. Given that most software users are not
programmers, what good is the source code to them?
2. Why is the source code useful?
Here are six reasons why the source code is of use even to non-programmers.
- Avoiding vendor lock-in*
- If a user has access to the source code and the rights to use and build upon the
source, this frees them from a dependency on a single software vendor. If their current
vendor raises prices for purchase or support, the user can simply find another vendor or
consultant (who will be able to get the source) to support the software The user's
option to do this places a strong pressure on existing vendors to keep their pricing
reasonable.
- Mitigation of vendor collapse*
- The availability of source code protects a user's right to use the software even if
the vendor of that software should collapse, discontinue the product, or provide only
nominal on-going support. This is particularly important now that many vendors license
software for a fixed period, potentially leaving customers with neither a new version of
the software nor a method of continuing to use their existing software past its licence
duration. Many organisations have legal responsibilities to retain and make available
data for a certain period. If the software used to access the data becomes unavailable
during that period then the organisation would be left with a significant problem.
- Translation*
- With the source code the user can translate the user interface of the software into
the language of their choice. This is particularly important for minority languages for
which a commercial market is unlikely to ever reach critical mass.
- Customisation*
- Closed source products can only be customised in ways that were thought of by the
vendor, whereas open source products are infinitely customisable. Organisations without
in-house programming skills can engage a third party to perform customisation of both
closed and open source products.
- Bug fixes*
- Without the source, bug fixes appear at the vendor's convenience, sometimes only
bundled with major upgrades. A user with the source code can engage a third party to fix
a problem, leaving just that bug fixed and the rest of the software unchanged.
- Security*
- Without the source code, no one but the vendor has the ability to check the
integrity of the software. While certain classes of bugs can be found by examining the
actions of software or examining the compiled code, there are other classes of bugs, for
which this ‘black box’ testing is ineffective. Independent reviews of
the source code are the only effective methods of finding and fixing these bugs.
Source code is normally kept in a version control system, a repository for source code
with special features that enable different versions to be tracked and managed. Many
websites allow the download of source code either directly from the version control system
or pre-packaged.
3. The source is never enough
*Access to the source code is not enough
Just having read access to the source code is not enough. We also need the right to do
things with that source code, to make changes to it and to be able to share our changes
with others - these rights provided by the use of an open source licence. Otherwise we
will always be on the outside looking in.
Bob Young, co-founder of RedHat, uses the following analogy to explain the differences
between the models:
- closed source is like a car with the bonnet welded shut — only the
dealer can service the car
- open source is like a car with a normal bonnet — anyone can service
the car
- source accessible but not open source is like a car with a
transparent bonnet welded shut — anyone can see what needs servicing, but only the
dealer can do it.
Open source software is always released under an open source licence. If
this is not the case then it is not open source software. All certified open source
licences ensure that you have the right not merely to access the source code, but to
modify it, redistribute your changes, and more.
4. Further reading
Links:
Related Information from OSS Watch: