For decades, many people have struggled for software freedom. Today, doing things with Free Software is that much easy that sometime we don't notice it. It is almost for two years that I am 99.9% using Free Software on my aged laptop. I have been in process for migrating to more and more Free Software on my android phone and have had good progress.
More than being a user, I have been talking and advocating Software Freedom in last two years. I have contributed to few projects as well; weather helping in improvement of the software translation or fixing some minor bugs. This, apart from being a part of this movement, gave me the feeling of being useful and effective in the movement. Seeing my changes being merged to the project and coming in the next release into my phone or on a website I have improved its code (like Plume) was so much pleasant.
Discussing about the importance of Software Freedom and guiding others to migrate to Free Software solutions became the detachable part of my life. During this time, I came across several challenges and one was what I am going to discuss here.
How truly free is a Free Software?!
In a public Telegram group related to Tehran Gnu/Linux User Group (TehLUG) there was a bot. This bot was responsible for detecting users who were making the group environment unhealthy, either by posting advertisements or being impolite or... For quite a long time, there has been discussion about this bot: Is this bot itself a Free Software? The answer was always YES! But actually, apart from the developer and also one of the most respected and known leading member of Free Software community in Iran, no body else had seen the code. The answer to the requests for checking the code was always same: pay 200 Euros and buy it.
Nobody paid that 200 Euros and therefore the code was only accessible by the two persons mentioned above. This made some people including me think more about the situation. We had a bot in group which could monitor our activities, decide if we behave "nicely" or not and kick us out if "needed". Many known people were kicked out and could never enter the group again! What if the bot, the administrative bot of the most important group of Free Software enthusiasts would do surveillance? Who knows?
It was here that I started questioning myself, if I cannot access the code, how this piece of code can be called Free Software. The answer was clear: by the terms of Free Software definition, this bot is under a Free Software license (maybe GPLv2, I'm not sure!). If we would buy it, we could run (freedom 0), study and change (freedom 1) and redistribute (freedom 2 and 3) the code. Sure! But what if instead of 200 Euros, it was 200,000 Euros? or 200,000,000 Euros? or...
Freedom of whom?
The license is something between the right holder and the user. When I download or buy a software, I am bound to the terms and conditions listed in the license between me and the owner or right holder of the software. This might be very much obvious! But I am here to problematize it a bit. I am going to say by saying a software is a Free Software, it doesn't or at lease might not mean it is Free to everyone!
You may think I am overseeing the freedom here. The leaders and thinkers of Free Software Movement are saying that having a Free Software License is enough for a program to be called Free. So why should I challenge it? For this, let me take the issue a little far, into political philosophy.
For centuries, several philosophers and theorists tried to define freedom. Each came with a definition. But all were same in one aspect: the definitions were monolithic. All of those definition were referring to "one" definition for a complex notion of freedom. Centuries Isaiah Berlin looked at freedom as positive and negative freedom. He took the discussion about freedom into a new level. In simple terms, freedom or liberty cannot be realized by not interfering one's action but it might need to take some action in order to make her freedom realized. This way of looking at freedom, helped us to understand freedom in a much deeper way.
By saying this, I want to say that the way we look at software freedom is similar to the way ancient philosophers were looking at it. I want to suggest to look at it slightly different.
When I publish a program with a Free Software License, I give freedom to the user by saying I'm not going to interfere the way you want to use, study, change or redistribute it till you don't violate the license terms. This is fine, but not enough. This gives the four fundamental freedom to the user. But what about others? At best one can say the software is potentially Free for all the people. But in true sense, it is only Free to the person who has access to it.
Imagine I develop a software and license it under AGPL. If nobody uses it, the freedom of this software cannot be realized. So it is pointless to call it a Free Software (though it is by definition and license, a Free software!). What if I give or sell the software to another person and he, by his decision or by some other restriction (either some law or some extra agreement between me and him) won't share the code. Now, the software is [at best] Free for me and him! not anyone else. Am I wrong?!
Public/Private Free Software
The aim of the movement is to bring freedom and control over computation. This can be seen in the essence of several speeches and articles made by Free Software leaders and propagators. Their aim has been to make sure everyone can have control over the programs they run. This is what can bring [Rawlsian] justice to the society in the digital era: greatest benefit to the least-advantaged members of society. The idea behind Free Software Movement was to make sure each and every individuals in the society to have control over what they run on their digital devices.
Lets compile all these things together. Software is a Free Software if it gives four essential freedoms to the user. This is is enough for a software to be called Free Software. But this is not enough. We don't need a software to be Free on paper or in theory or definition. We need the society enjoy those freedom in real sense. In this regard, I suggest to differentiate between two kind of Free Software. So what should we do? Should we call them as True/False Free Software? no!
I am coming with a suggestion here. As long as a software is relatively accessible for public (not in theory but action) this software can be called a Public Free Software. If the software is accessible only to specific group of people, then is can be called Private Free Software. And as far as my understanding, FSF and Gnu project are looking after the Public Free Software.
Conclusion
The movement till today, has had several challenges. One of them has been to tell people that Free Software idea is different from Open Source idea. The Free Software movement unlike the Open Source movement has been looking for Software Freedom and not just opening source and share some part of the software. This can be seen even more clearly in the way GPL licenses are crafted.
My suggestion in this article is to go slightly beyond the definition. We must keep in mind the aim of the movement otherwise, things can be manipulated easily!
By the way, the bot of the TehLUG Telegram group was removed and then replaced with another AGPL licensed bot made by the community.
:)
Comments
December 29, 2020 01:21
Thank you for the clarification! I think this problem is due the fact that GPLv{1,2,3} were created in a period in which the user rarely uses a software running in someone else computer. The problem of the bot and the tivoization is caused by the fact the software is running on someone else computer that isn't controlled by the user.
January 1, 2021 21:02
@amreo@amreolog.duckdns.org Happy that finally someone read the article. Yes! AGPL was an attempt to address this issue. Yet, I have witnessed that some people claim their software to be a free software in a context that is not relevant.
I still need to work on my argument farther.
December 2, 2022 12:23
Good day :) Deciding whether to use public or private software is a complicated decision. There are benefits and drawbacks to both. Ultimately, the decision comes down to what is best for your company or organization. If you have the resources to develop and maintain private software, it may be the better option. If you do not have the resources, public software may be a better choice. As the world of software development evolves, it becomes more and more important for private companies to have a reliable and trustworthy development team. Andersen is a great example of a private software company that delivers quality results. I have been using their services for several years and the quality of their work is impressive.