For my first article on this blog, I wanted to talk about something that matters to me. That’s why I naturally thought of free software. The point of this article is not to do another Wikipedia page about it, but to answer with my words some questions I often hear when people talk about that concept.
- You can run the program the way you want, whatever your goal is.
- You can study how the program works as much as you want, and then modify it.
- You can redistribute it to whoever you want.
- You can improve the program and then release the modified version to the community.
Where do these four rules come from?
They were defined by Richard Stallman, founder of the Free Sofware Foundation. This non-profit organization aims at supporting the free software movement, especially software distributed under copyleft with its own GNU GPL license (General Public Licence). This license ensures the freedoms are preserved whenever the software is distributed, even if it has been changed.
Do you have a few examples of free and proprietary softwares?
Internet Explorer, iTunes, Windows, Microsoft Office, Safari or Skype are proprietary softwares. That doesn’t mean they are all charged, but you don’t have access to their code or you can’t modify and redistribute it. On the contrary, Gimp, Firefox, GNU/Linux, VLC Media Player, Clementine, Thunderbird or LibreOffice are free softwares (although some purists could argue for instance that Firefox and Thunderbird have proprietary logos or that the Linux kernel now has a few proprietary lines of code… well that’s not false).
Why is that ideal a good one ?
I did not say it was a good ideal but I am glad you think that. I can give you a few arguments I would use to convince a lambda person in the street. First, I could just quote that sentence from the movie Antitrust: “Human knowledge belongs to the world“. That’s beautiful, isn’t it?
Then I would sum up a little analogy that Richard Stallman made in this documentary. To a certain extent, a recipe looks like a program since it is a succession of instructions leading to a result. If some of your friends cook you a meal you like, you might ask them for the recipe. Then you will try to do it by yourself at home. Maybe you will make some modifications to the recipe in order to get an even better meal. And finally, you may want to invite these same friends and cook them your new version of the original meal. But now imagine a world where you couldn’t change the recipe because someone ruled that you can’t modify it, and threatens to send you in jail if you do so. That would be silly, wouldn’t it be? Why wouldn’t you have the right to change the recipe and then share it? Do you start to see why free software is such a self-evident way of thinking?
Furthermore, the fact that the code can be read by everyone somehow assures you that it doesn’t contain some malicious parts. Indeed, if you are using a proprietary software, it’s authors can for instance add some code which will spy on you, without you even being able to know it. With a free software, that would be noticed almost immediately by someone. Another advantage of a free software is that if it contains a bug (especially a security hole), there are more people likely to find it and correct it before it causes serious issues. That’s a consequence of my last point: a free software often comes with a huge community behind it. And there’s nothing more powerful than a group of passionate people working together on something (by the way, it’s doesn’t only apply to computer programming).
Ok, let’s say it is a noble ideal. It is still not economically viable at all!
This is a really interesting question, maybe the first one people ask when they first hear about free software. I was wondering that too. How can a company (or an individual) earn money if it only provides free softwares?
Well, in most cases, the keyword is technical support. It means that the clients don’t pay for the software itself, but for all the services that come with it. That includes for example technical support as I just said (professionals ready to help you if you have issues with the software, hotlines, team training, etc.) and software customization as well. You may think it is not really useful, but it’s essential for a company to work with tools which are reliable and fitted to its needs.
To finish, some companies can release free softwares in order to gain credibility in some fields (Google is good at that, as well as most university computing departments). Others just release parts of their software so that the community can use, bug test and even fix it.
You should now understand how a company can thrive even if it releases free softwares. For you information, that’s the case of Red Hat, Inc. and Mozilla Corporation.
We have reached the end of this introduction to free software, which I hope you found interesting. Feel free to comment if you have any question or if you disagree with something I said.