Open source explained—what does it really mean?
Open source is a term created by a group of people in the free software movement. It was born after a critical examination of the political and moral connotations in the original: free software. But, what does it really mean?
A knotty puzzle may hold a scientist up for a century, when it may be that a colleague has the solution already and is not even aware of the puzzle that it might solve.
― Isaac Asimov, The Robots of Dawn
While the term open source clears away this confusion, it adds complexity to the matter, as many thought that the free brand was counterproductive for business and unsettled the corporate folks. Open-source software is publicly available code. Any person can see, distribute and modify it at their whim.
Among other benefits, open source is often cheaper, more flexible, and has a longer life cycle. This is due to its decentralized nature and development process, as it does not rely on a single company or author. Open source has become a massive movement that nowadays stretches even out of software development.
But what about its origins?
Free software vs. Open-source software: what is the difference?
Free software or the free software movement was born out of the mind of Richard Stallman. Even though no change is a product of only one person, but of their time, Stallman laid the foundation establishing basic requirements for software development. The idea behind free software builds upon four requirements:
Freedom to run the program as you wish, for any purpose
Freedom to study how the program works, and modify it to your computing needs. Access to the source code is a prerequisite for this.
Freedom to redistribute copies so you can help your neighbor.
Freedom to distribute copies of your modified versions to others. This relies on the sentiment of community and paying the benefit forward. Access to the source code is a prerequisite for this.
The switch from free software to open-source software was born in part from the ambiguity of the word free in English. Something that doesn’t happen in French or Spanish. There is a difference between “libre” in Spanish, as in “free speech”, and “gratuit” in French or “gratis” in Spanish, as in “free hugs”.
Is open-source software free?
Not necessarily, or at least not as we intuitively think of it. Open source means that the source code is free, but the executable software may not be. It is the case of many services. One example is RedHat. Its source code is available, but they offer a subscription to manage the runnable code, servers, and time spent in maintenance.
You can think of the code as a recipe. I can tell you how to cook my Spanish tortilla, but it does not mean that you will have the expertise that I gained doing it over the years. It might also require tools that you do not have, a comfortable kitchen to do it faster, and a knowledge of where to buy the best and cheapest ingredients.
Nowadays, neither open-source nor free software implies anything about cost. Both can be legally sold or given away. Even if there are some practical differences, they share common values. There is even a combined term to refer to them: free and open-source software or FOSS.
Open-source versus proprietary license
The main difference between FOSS and proprietary software is the availability of the code: proprietary software such as Microsoft Windows, Adobe Photoshop, and many others do not share their source code with end-users; free software such as the Linux kernel, Google Chromium (the base of Brave and Chrome browsers), Bitcoin and more, have their code available to see.
Open source and free licenses
Licenses are a technical matter, and if you thought computer programming was complicated, wait to see the legal behind this. You will appreciate lawyers way more or maybe hate them for coming up with this.
"A software license is a legal instrument governing the use or redistribution of software. Under United States copyright law, all software is copyright protected, in both source code and object code."
What does this mean? It states that every piece of software is under some form of copyright, except some such as the US government and public domain software. Typically a license permits the end-user to use one or more copies of the software in ways that do not infringe copyright. And what does infringe copyright? Well, you would have to read the whole EULA of every proprietary software. I still have all the classical literature first, so I will start with that. It’s shorter.
As a first clear distinction, we have Non-Free and Free and Open Licences:
Non-free:
Trade secret: no information made public
Proprietary license: traditional use of copyright, no rights granted
Noncommercial license: grants rights for noncommercial use only
Free and open:
Public domain: grants all rights
Permissive license: grants use rights, including the right to relicense
Copyleft (protective license): grants use rights but, unlike permissive license, forbids proprietization
The main difference between free and open software is that permissive license allows proprietization while copyleft does not. In an in an attempt to maintain freedom you cannot proprietizate copyleft software. This is a way to protect freedom while restricting it. This prevents big companies forking the original software to then make it closed.
This is a terrain where politics, laws, and personal morality intertwine. The opinion of the developer and the end-user can vary a lot. This is true for many decentralized movements, not just open-source or free software issues. As the adoption gets wider, and traditional corporations get interested in this world, licensing might be a relevant point to consider.
Why does open source matter?
Open source is good for everyone. And I’m not trying to evangelize here; you can try it yourself. Both programmers and non-programmers benefit from it now as most cloud computing and server management rely on some form of open-source software. As it brings open and freely available options, it encourages collaboration, the understanding of technology, and its development. It is not only a cool gimmick or a cult where to get involved. It's a way of solving problems.
It is not only a matter of community or giving back. It is an opportunity for users to dive deep into how the software works, why it was built that way, and how to challenge it. Open source brings control, training, security, and stability to users and software alike.
Open source induces collaboration in projects and invites anyone willing to join. These groups still maintain standards on quality, but they do not place artificial barriers to entry. Code is valued for its worth and nothing else.
Future challenges
Nowadays, open source exceeds the software development industry, as many projects that involve some way of source code become publicly available. This is true about blueprints, recipes, and rules—the things that shape and guide how we live every day. It is crucial to take this way of thinking to other areas: such as science, education, government, manufacturing, and law, among others.
At Awkbit, we share the open-source line of thinking, and you can take a look at the work of many of our developers in GitHub. If you have any questions, doubts, or want to know more about open source, the code we use, or how we solve problems, do not hesitate, get in touch!