Source Code

You do not intend to write programs, but just to use the software. Nevertheless the source code of the software can be unpayable for you.

The source code is the form of a piece of software for studying it or making modifications to it. For some programs, the source code can be executed directly (using an interpreter) but for most it must be transformed to an executable form of the program (using a compiler). It is not possible to transform the executable program back to its source code.

As long as a program works perfectly, you do not need the source code. However this will not last forever in a real-world job where demands change every day.

When there is an error (“bug”) in the software, you contact the manufacturer who has access to the source code. The same holds when you want to order improvements to the software.

But what can you do when the manufacturer is unable or unwilling to help you or wants to charge you an exorbitant price? It happened many times that a company depended on a specific software whose manufacturer suddenly went out of business, taking the source code with him.

In such a case it is necessary to switch to another software or to have it rewritten from scratch. Depending on how important the software is for your business, this can have serious consequences. But if you have the source code at hand, you can ask a programmer of your choice to maintain the software for you.

Source Code—A Precondition For Security

There is a reason why you, as a user of the software, should have an interest in the disclosure of its source code: quality due to constant peer review. In particular this is important when dealing with computer security.

Some vendors of security software advertise it with phrases like “extra security due to our top secret formula”.

This concept of “security by obscurity” is a false conclusion. An attacker with sufficient time and motivation can find the weak points without access to the source code, or he obtains access to the source code by illegal means. In contrast, independent security experts must obey the law and are considerably encumbered by the concealment of the source code.

In a system as complex as software, the only way to reach the highest possible level of correctness and security is a constant quality audit by a large number of independent experts. Of course, free software is not a magic bullet which works automatically, but it creates important preconditions.

So even if the source code is of no direct use for you, it serves you as a certificate for the quality, security, and the guaranteed future of the software.

Next: what the term “Open Source” means and why we are speaking of “free software” nevertheless