The content generated by users is a trend that we are used to seeing on the Internet and that we see every day on social media. In the world of IT, it is also possible to create or improve applications, tools or programs using the same collaborative model.
Explained in a very simple way, a software program is a set of computer instructions needed for our electronic devices to perform the tasks they are designed for. These instructions, which are written in a programming language, are known as source code. Although we tend to associate the word ‘software’ with computers or smartphones, most of the devices we now have at home or in the office have integrated software: televisions, video game consoles, cleaning robots, smartwatches, etc.
You have probably had to call for technical support when one of these devices has stopped working properly but, can you imagine being able to fix it yourself? In the 80s, US programmer Richard Stallman worked in an office where the printer often had paper jams. His colleagues would only notice the problem when finding that the documents they had sent to the printer hadn’t been printed. He decided to modify the printer’s source code so that whenever there was a paper jam, the users would receive a notification alerting them of the error so that they could fix it.
After a while, the office replaced the printer with a new one and the problems caused by the paper jams returned. This time, Stallman was unable to do the same thing he had done with the previous printer, because access to the source code had been restricted by the manufacturer. That was when he started a “free software movement”, which sought to give users the freedom to view, modify and distribute the source code to adapt it to their needs.
Open source, a collaborative approach
Stallman’s case with the printer was the starting point for a large number of programming experts to join forces to develop software that was not owned by anyone and that was available to anyone who wanted to use it, improve it or create a new software from the source code itself. Nowadays, mainly in the digital world, it is possible to find programs that have been designed thanks to the collaboration of many people.
There are several examples on computers and smartphones of tools made with open source software, such as Internet browsers, operating systems and applications to perform virtually any type of task, from editing a video to designing a website. Let’s imagine an app that can take pictures with a mobile phone: it’s possible that one person has designed the first version and that, over time, someone else has detected and corrected possible errors, and a third person might be currently developing additional functions of the same app. This is because the source code is public and can be modified.
The answer to this frequently asked question is yes. There are differences between the three concepts, although sometimes they aren’t so easy to spot. Each concept is explained below:
- Free software: this was the first concept to spread as a result of the case involving the printer. Its main objective was to give users the freedom to access source code, hence the use of the word ‘free’. Although its meaning is often confused with that of ‘free of charge’, it’s not. A person may make use of the fact that the source code is publicly accessible to make improvements voluntarily and free of charge, or to charge for the copies they distribute of the new version. In this regard, one of the aspects that stirs up the most interest among users when taking part in free software with a PR (pull request: a request for the contribution to be validated and integrated into the project) is obtaining badges, which will increase their recognition on GitHub, a popular collaborative development platform.
- Open source software: this concept came later, partly to end the confusion surrounding the term free software and whether it was free of charge, and, also, to demand more values and criteria when accessing the source code, such as non-discrimination against people and groups. In this case, the software may also be used for either free or commercial purposes. Therefore, it’s not unusual to hear that the difference between free and open source software is more philosophical than practical.
- Free of charge software: this is, without a doubt, the easiest concept to explain. These are programs, applications or tools that users can obtain free of charge, mainly by downloading them from the Internet. As a general rule, these programs do not include access to the source code, so it can’t be modified.
Lastly, as opposed to open source software, there is closed-source or proprietary software, which can only be viewed, copied or edited by its programmers or owners. This type of software can also be free of charge or for a price.