Free Software
It is working silently in the background, but it makes essential contributions to our everyday life. Almost everytime you send or receive emails or read web pages, free software is involved.
When you read “free software” you might think of giveaway software whose quality you do not question because you could download it for free.
That's not what we are talking about here.
Free software is no “free beer” but it gives you the freedom
- to run the program, for any purpose,
- to study how the program works, and adapt it to your needs,
- to redistribute copies,
- and to improve the program, and release your improvements to the public.
In particular, as a user of free software you get access to its source code which is a precondition for studying, adapting, and improving the software. For this reason, many people refer to free software as Open Source software.
Objective: Public Welfare
Free software is not a matter of price, but of attitude. The programmer grants extensive rights to the user. In contrast to proprietary software where the license strictly forbids to distribute copies, free software explicitly allows you to help your neighbour by giving him a copy of the software. It is explicitly allowed to let the public benefit from your improvements to the software.
When you had to use a computer in the past, you could either spend all your money on software licenses, or get illegal copies of the many, many little tools you need to get your work done. Nowadays you can get a complete operating system including office and Internet software as free software. This goal of the GNU Project was reached in 1991 with the release of the GNU/Linux operating system. This was the end of the de-facto necessity to act against the law and against the declared intention of the author of the software, just to make use of a computer.
For many programmers, this ethical component is a good reason to contribute to the development of free software.
Technical Benefits
Moreover there are many technical reasons for a programmer to attend to free software.
Many programmers have accustomed themselves to some annoyances of their job. But these annoyances are no laws of nature. They are consequences of the concealment of the source code.
- Proprietary operating system. The knowledge of the programmer about the function of his software ends at the interface to the operating system. If there are any bugs or deficiencies in the operating system, they are out of his range. By trying to work around them, he produces very complex and error-prone software.
- Proprietary tools and libraries. Adapting the tools and libraries to a new hardware and/or software environment—for instance to a different operating system—can only be done by their maker. In many cases there is no way to overcome this obstacle.
- Abandoned products: When a proprietary software product—for instance a text processor, a compiler, or a complete operating system—is abandoned by its manufacturer, it dies inevitably. Noone else can continue to support the product without the source code. In such a case, all know-how you collected about this piece of software gets lost. This includes the texts you wrote using the abandoned text processor, and the programs you wrote using the abandoned compiler or for the abandoned operating system.
Every day, this unnecessary work causes a huge economic damage. Free software helps to avoid it.
Next: why it is an advantage to get the source code along with the software you use