Free Software : Source code and recipe
Free software's four freedoms
When you speak about Free software, you speak about freedom. And more precisely, about 4 freedoms : use, study, share and improve the software. Thanks to an analogy to a recepy, it becomes quite clear, how these freedom work and why it is important to have an open source code.
Let us assume, we want to prepare a soup. In front of us, we have the recipe and the ingredients. We are allowed to use the recipe for any purpose : we can cook for dinner at home or at a friend's house, in holidays, in a foreign country... This is what is meant by the first freedom : the unlimited use for any purpose.
Now we take the recipe, and we can read what ingredients are needed. This is more or less the source code of the software. Without the source code, I cannot understand the software, exactly as I'm unable to cook the soup without having access to the list of ingredients. This is the meaning of the Second freedom : I need the right to study how the program works and understand it. It's of no use for me to have a packet soup, where the composition is unclear and the recipekept secret.
Now we can also think it a bit sad to cook alone. I am allowed to invite some friends for dinner, or to bring them my soup when I am inivited, or even to give them the recipe so that they can enjoy my soup even when I'm absent. And my friends can also copy the recipe and give it away to their friends... This is the third freedom : the right to share copies of the software and hereby to help people.
A step forward is to see that even if I find that my soup is good, it could taste better. On the recipe there is some advise : to add some parsley. But I don't like parsley so I try it with basilic. And so it does indeed taste better. And so I take my own copy and modify it : I erase parsley and replace it by basilic. When a friend asks me for my recipe, I give him the new, modified version. This is the fourth freedom : the freedom to improve the program adn to distribute the improvements to the program, so that everybody profits from it. Since I'm allowed to do that, my friend's soup also tastes better. Or perhaps they will also want to add another ingredient, say some cream, and they will modify their own copy. Things have always evolved that way, since cooking was invented. People haven't cooked at first a turkey filled with orange and red-cabbage with cardamom seeds but rather with a roasted deer over a camp fire. If noone has the right to reveal how to make things better, we would perhaps still be eating roasted deer with raw nark or such a thing. Awful thoughts.
It seems evident, that I'm allowed to give away a recipe or a soup or even to improve it. If we carry this logic over software, we can easily see that in the case of proprietary software, I'm not allowed to copy neither to distribute the software : that's illegal. I'm not allowed to help people.
If you think that since you can't program, these freedoms are of little use for you, please think this over : even if you can't do it on your own, these freedoms give the possibility to those who can program better than you do to solve the problem for you. Without the access to the source code however, this remains impossible.