The philosophy underlying open source software (OSS) is enabling programmers to freely access the software source by distributing the software source code, thus allowing them to use the software for any purpose, to adapt and modify it, and redistribute the original or the modified source for further use, modification, and redistribution. The modifications, which include fixing bugs and improving the source, evolve the software. This evolutionary process can produce better software than the traditional proprietary software, in which the source is open only to a very few programmers and is closed to everybody else who blindly use it but cannot change or modify it. The idea of open source software arose about 20 years ago and in recent years is breaking out into the educational, commercial, and governmental world. It offers many opportunities when implemented appropriately. The chapter will present a detailed definition of open source software, its philosophy, its operating principles and rules, and its strengths and weaknesses in comparison to proprietary software. A better understanding of the philosophy underlying open source software will motivate programmers to utilize the opportunities it offers and implement it appropriately.
Key Terms in this Chapter
Source Code: The original human-readable version of a program, written in a particular programming language. In order to run the program, the source code is compiled into object code, a machine-readable binary form.
Open Source Software (OSS): Software for which the source code is open and available. Its licenses give users the freedom to access and use the source code for any purpose, to adapt and modify it, and to redistribute the original or the modified source code for further use, modification, and redistribution.
Closed Source Software (CSS): Non-OSS for which the source code is not available and not open. It is closed to modification and distribution by licenses that explicitly forbid it. The term CSS is typically used to contrast OSS with proprietary software.
Proprietary Software (PS): Software produced and owned by individuals or companies, usually with no provision to users to access to the source code, and licensed to users under restricted licenses in which the software cannot be redistributed to other users. Some proprietary software comes with source code—users are free to use and modify the software, but are restricted by licenses to redistribute modifications or simply share the software.
Free Software (FS): Free relates to liberty and not to price. It is similar to OSS but differs in the scope of the license. FS does not accept selective open sourcing in which companies may elect to make publicly available specific components of the source code instead of the entire code.
Copyleft: Permission for everyone to run, copy, and modify the program, and to distribute modified versions, but no permission to add restrictions of one’s own.