Giovanni's Diary > Subjects > Programming >
Free as in Freedom
Suppose that you receive a nice LEGO set for Christmas. It is a big house with two floors and a garden, everything was already built for you. You always enjoyed playing with LEGO when you were a kid, making wonderful and artistic buildings of any kind. However, Its packaging instructs you that you need to read the rules before playing, so you begin reading the manual you just found inside the package. First, you cannot remove or change any piece from the house, if you do so you will get in great troubles. If you break a part of the house, you are not given instructions to repair It yourself and you need to send the entire house back to the shop. You should also know that the pieces can only be connected with a special secret glue that they own so that any attempt of yours to add new rooms or repair some pieces would be worthless. Additionally, the shop owners may come to you and remove or change parts of the house as they please. The book continues telling you exactly how you should play and when, any other option is not allowed. Ah, btw, there is a camera watching you 24/7 which you cannot turn off. You begin asking yourself, do things have to be this way? What if you didn't like the style of the garden and you wanted to change It? Or maybe you are into sci-fi and you wanted to use the pieces to build a spaceship instead? Or what happens when the shop decides that you need to change your set with another one? What if you just wanted a part of the house? You conclude that you should just follow orders and take the house as It is, play with It as they instructed you to do, do you?
As a programmer, I strongly believe in the principles of free software and I think they are fundamental to build an ethical and ultimately good world. In particular:
- The freedom to run the program as you wish, for any purpose
- The freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help others.
- The freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
As a programmer, using or even learning software that I do not have the right to read the source code of, where I do not have the right to modify It or democratically participate in Its ownership is completely useless and a big waste of time. Companies remove your freedom in order to raise capital for their interests at the expenses of the user. A company that does not show Its source code is not prioritizing your interests and should not be trusted.
Living in a free software world is completely doable. Linux (or BSDs) are great and powerful operating systems. You have the freedom to manage your own system the way you want: use a FOSS file editor (vim, emacs, nano), window manager (i3, dwm…), editing software (gimp, krita, kdenlive), you can self host open source services on your machine to manage photos or websites. And many more. Therefore I conclude that there is no reason to use proprietary and unethical software anymore, we are full of freat FOSS software and It is improving every day.
Travel: Programming, Index