Consulting Center for Geographic
Information Systems (CCGIS),
When you hear ‘Open Source’, do not think license. Think development methodology. Think of source code that is widely available. Source code that can be both viewed and changed by just about anyone who wants to bother. That is the essence of open source. It is ‘open’ as opposed to ‘closed’
To understand the implications involved in developing software from an Open Source perspective, it will be necessary to differentiate it from proprietary software. This introduction can only be cursory, for more details please refer to the Free Software Foundation website at https://www.fsf.org and the Open Source Initiative website at https://www.opensource.org.
Source Code and Binary Executables
The human readable part of a software is often referred to as source code. Anybody can physically ‘read’ the letters of the code as it usually comes in plain text format. But it needs special skills to actually understand what the code is doing as the syntax can be somewhat cryptic. Those who are capable of coding software, are usually referred to as developers. Code can be written in different programming languages (for example C++, Java or PHP).
Once the software has been coded, it will often be compiled (translated) into a machine readable binary format. The process of compiling a software is irreversible. The resulting file itself is unintelligible to humans (it cannot be read or understood), but it can be executed by computers. There are methods of taking apart a binary file (decompiling it) and to learn how it works, but it is a rather tedious and error prone job.
Therefore software developers need access to the source code to implement new functionality or remove bugs (errors) from the code base. All changes to a software will take place in the source code, as the binary translation is a one-way process.
Open Source is a Development Methodology
When you hear ‘Open Source’, do not think license. Think development methodology. Think of source code that is widely available. Source code that can be both viewed and changed by just about anyone who wants to bother. That is the essence of open source. It is ‘open’ as opposed to ‘closed’. Most users will never bother to look at the source code of a software, but simply execute and use the compiled version. Hence, we get the term ‘user’. From this perspective it does not make a big difference whether the source is open or not. But it does make a big difference under which conditions the user is allowed to use the software.
Free Software as opposed to Proprietary Software
When you hear Free Software, don’t think development methodology, or price, think liberty. You may have heard the mantra “Free as in speech, not free as in beer” used to explain Free Software. That is because the first thing people usually associate with free is its price. That may or may not be true, but it has nothing to do with what makes free software free. Here are four requirements that – according to the Free Software Foundation (https://www.gnu.org/philosophy/free-sw.html) – determine whether or not software is Free:
- The freedom to run the programme, for any purpose (freedom 0).
- The freedom to study how the programme works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbour (freedom 2).
- The freedom to improve the programme, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.