GNU/Linux Desktop Survival Guide by Graham Williams |
|||||
There is much confusion over the terms free software and open source. They are not the same thing. Open source software is not necessarily free software. Indeed, some open source software places considerable restrictions on what you can do with the source code, thus rendering it non-free. GNU software is open source software that is also free in the sense of freedom. This software allows everyone to redistribute and modify the software, without restriction.
We contrast open and free software with proprietary software that we have become familiar with--the software that we buy on trust from a vendor, trust that it will work, but for which the vendor disowns any responsibility. When you find it has bugs and is not fit for purpose you must buy the next version to get something that works for you.
Proprietary applications for word processing, spreadsheets, presentations, Web browsing and so on abound. In general they work pretty well today, providing sophisticated functionality. However, probably because of their proprietary nature, they generally do not work well together, particularly products from different vendors. There is little motivation for vendors to make it easy for you to move away from their product to a competitors product.
What makes this situation rather sad is that each of these proprietary applications have a lot of functionality in common. Today we have a pretty good understanding of the common features we require in a product: open and save files, cut and paste, spell checking, etc. They all provide this, often over and over again. There will always be opportunity to innovate and do things in different and possibly better ways, but why are we wasting resources on the most basic of operations instead of innovating with new functionality? This has been addressed on the major modern platforms by sharing toolkits. But sharing of more substantial functionality has been slower to develop.
Another aspect is that open source software makes development cheaper because more people are involved, the work load is shared, people with very different skill levels can collaborate and help increase the overall skill level of the whole community, bugs are caught quicker because there are more people looking over the source and bugs are fixed quicker because of this.
Free software demands that the user be granted four kinds of freedom: freedom to run the program, for any purpose; freedom to study how the program works, and adapt it to your own needs; freedom to redistribute copies so you can help your neighbour; and freedom to improve the program, and release your improvements to the public, so that the whole community benefits. A pre-condition for this is the availability of the entire source code, so that along with the freedom comes the responsibility to share your ``discoveries'' with others.
Free software open source projects still need to be structured. Usually they are conducted under the watchful eye of a project leader, commonly referred to as the maintainer. Anyone can contribute to the project and decisions are often discussed openly and decided by consensus after discussion of the technical merits. Sometimes the project leader will need to cast the `deciding vote'.
Finally, in addition to founding the GNU Project Richard Stallman founded the Free Software Foundation to pioneer the cause of free software--free software that gives individuals the opportunity to share their innovations and through this to allow others to learn and to contribute their discoveries.