Who needs the source anyway?

by Stuart Yeates on 1 June 2004 , last updated

Archived This page has been archived. Its content will not be updated. Further details of our archive policy.

Introduction

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?

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.

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.

Further reading

Links:

Related Information from OSS Watch: