The Free Software Foundation (FSF) has this to say about “Free Software”:
“Free software” means software that respects users’ freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software. Thus, “free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer”.1
So the FSF’s view is that Free Software respects users’ freedom and liberty. That sounds great. Who doesn’t like freedom? Freedom is important, and software should definitely respect it.
But what exactly does “freedom” (or “liberty”) mean?
That’s not a simple question to answer. Philosophers have debated it for centuries. The concept can only be properly defined and understood in the context of a full philosophical system. The FSF skirts this fundamental question entirely, apparently assuming that everyone knows what freedom means. This is a guarantee that there will be muddled thinking ahead. Good philosophy requires precisely defining one’s terms. Bad philosophers depend on ambiguity to peddle nonsense.
So, without defining “freedom”, the FSF goes on to define four “software freedoms”:
- The freedom to run the program as you wish, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help others (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). 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.
They also make the claim that software that doesn’t offer these four freedoms to everyone is an “instrument of unjust power”:
We campaign for these freedoms because everyone deserves them. With these freedoms, the users (both individually and collectively) control the program and what it does for them. When users don’t control the program, we call it a “nonfree” or “proprietary” program. The nonfree program controls the users, and the developer controls the program; this makes the program an instrument of unjust power.
Now right off the bat, before we even get into the bigger issues with all of this, and ignoring for the moment the outlandish claim that “the nonfree program controls the users”, it’s hard to miss the glaring contradiction here. If nonfree software is bad because it’s an instrument of unjust power, that implies that instruments of unjust power are bad. Well what if someone decides to use a piece of free software as an instrument of unjust power? Isn’t that equally as bad as nonfree software, for the same reason?
So why does “freedom 0” include the phrase “for any purpose”? If the purpose is to use a program as an instrument of unjust power, wasn’t that what we were trying to prevent with the whole “free software” concept in the first place?
As per the logic of “freedom 0”, the developer of a program is forbidden from using his code as “an instrument of unjust power”, but the users are not. In fact their right to do that is asserted and upheld by “freedom 0”.
Freedom Is Not a Floating Abstraction
The problem here isn’t just this glaring contradiction between the stated and actual values promoted by the FSF. The problem is that the FSF and its founder, Richard Stallman (aka RMS), have no coherent conception of what “freedom” is.
When we talk about human freedom we generally mean certain individual rights, as laid out in the US Bill of Rights, or other similar documents listing human rights. But these legally recognized rights vary from country to country, and without reference to a precise and objective definition of human rights, it isn’t possible to decide which of these various conflicting documents captures the full essence of freedom, or if none of them do.
The definition of individual rights and the reasoning in support of them is the domain of philosophy. Many arguments and theories have been proposed over the centuries, but the most precise and logically consistent formulation of the concept of individual rights is to be found in the works of Ayn Rand and Murray N. Rothbard.
Ayn Rand’s philosophy of Objectivism is a complete and logically consistent philosphical system built up from first principles. You can read all about it in Objectivism: The Philosophy of Ayn Rand.
The Objectivist argument for individual rights is based in the recognition that man’s mind is his primary tool of survival. The freedom to live and act based on the judgment of his own mind is therefore a natural, necessary precondition for his survival, and right, so long as it doesn’t interfere with the equal right of every other human being to do the same.
This is a rock solid argument, firmly built with complete logical consistency upon the foundation of Objectivist metaphysics, epistemology and ethics. It implies that all men have equal and identical rights, since the source of rights is man’s nature as a rational being.
However it is also possible to simply start from the premise that all men have equal rights, and arrive at almost exactly the same conception of individual rights as identified by Objectivism. This is Murray Rothbard’s basic premise in The Ethics of Liberty, which comprehensively and precisely explores the topic of individual rights, in much greater detail than Rand’s work.
So “freedom” is not some arbitrary or vaguely imagined floating concept, but a clearly defined state that arises through the recognition and respect for specific individual rights.
There are many other theories of “human rights”, but insofar as they disagree with Rothbard’s formulation, they are mostly wrong. Many of them are discussed and logically decimated in his book linked above.
“Software Freedom” Is an Attack on Developers’ Rights
“Software Freedom” therefore is only (potentially) a subset of, and premised upon, the broader individual rights of all men.
From this perspective we can take another look at the FSF’s “freedom 0” and see immediately that the freedom to use a piece of software “for any purpose” is not consistent with respect for individual rights. The use of software to attack or violate individual rights is clearly not a “purpose” that we should defend or uphold. The FSF’s “freedom 0” is in fact a “freedom” that protects the “software rights” of those who violate individual rights, such as murderers and genocidal dictators, among others.
This is a consequence of thinking of “freedom” as a vague floating abstraction not solidly grounded in a complete, rational philosophical system.
But we’re barely getting started here. It gets worse.
All four of the FSF’s “freedoms” are premised on the idea that the developer of a software program has no rights. Once a developer releases a program he must grant all of the FSF’s “sotware freedoms” to everyone, for the use of his program for any purpose. Anything less than that is considered unethical and “nonfree” by the FSF.
But what about the developer’s rights? What if the developer doesn’t want to freely license his program to genocidal dictators, while still freely licensing it to others?
Obviously, he is trying to wield unjust power over the dictators.
Or at least, that’s what the FSF wants us to think.
Who cares about a little thing like freedom of association? We’re talking software freedom here, people! Are we going to allow pesky little individual rights get in the way?
“Freedom 1” is great to have as a user of a program, and I try to avoid using programs that don’t offer it. But again, this is not a legitimate right of a user. It is the developer’s right to decide what licensing terms to apply to his code, and wether or not to release the source code. A user of a program doesn’t have any right to its source code (or the binary). He has the right to not use a program if he is unable to access the source code. So “freedom 1” is really an attack on developers’ rights to make decisions about the visibility and acessibility of the source code they create.
“Freedom 2” attacks developers’ copyrights by requiring that anyone be able to copy the program. The FSF’s GNU Public Licenses (GPL) are often referred to as “copyleft” because of this subversion of developers’ copyrights. Ironically, they do this using copyrights, and RMS and the FSF are apparently not troubled by the hypocrisy and contradictions inherent in this. Again, I do like being able to freely copy a program just as much as anyone, but I recognize it’s not my right. My right, which I exercise constantly, is to avoid using software that doesn’t let me do that.
By subverting developers’ copyrights, “freedom 2” also makes it effectively impossible for developers to earn financial rewards for their work. Sure, the FSF says “it’s about freedom, not price,” but as we’re seeing, it’s not really about freedom, and in fact, it definitely is about price. You can’t really charge a price, or much of one, for a product you’re allowing other to copy and give away for free for use “for any purpose”. So “freedom 2” (in conjunction with “freedom 0”) turns the developer who falls for it into a slave, unable to require a price for his work and forced to give it away for free.
“Freedom 3” extends the attack on developers’ copyrights by requiring that users also have the right to distribute modified versions of the program. There’s a collectivist appeal to “community benefit” thrown in there as well, which is a good clue as to the socialist underpinnings of the whole “free software” concept. And indeed, RMS is in fact a socialist.
This last “freedom” isn’t something I personally care about much as a user, and I’d happily use software that didn’t grant me this, as, I suspect, would most other users of “free software”.
“Software Freedom” Is a Socialist Package-Deal
The contradictions inherent in the “free software” worldview are far more comprehensible in light of RMS’s socialist ideology. To a socialist, much of reality is inverted. Slavery is freedom. Property is theft.
The “free software” philosophy is pure collectivism. From developers according to their ability, to users according to their needs.
Which is not to say that “open” software - software that grants its users certain privileges such as source code access - isn’t a good idea. In many cases, it is. But it’s not a matter of users’ “rights” in the way that the FSF and the Open Source Initiative (OSI) insist.
This is why I came up with the concept of Open Software, which is described in more detail here.
Open Software licenses grant various privileges to users, including source code access. Not as a matter of rights but because software is generally much more useful when you have access to the source code and can fix and tweak it yourself. If I have a choice between a product I can fix and tinker with myself versus one I can’t, all other things being equal, I’d generaly go for the one I can tinker with. That applies to computers, cars and other technology products just as much as it does to software.
Enabling customers to fix and modify products themselves can also significantly cut a producer’s costs related to customer support and product servicing, so in a free market there are many advantages, for both users and producers, in a permissive attitude towards tinkering.
Access to the source code also makes it possible to check for malicious code and security vulnerabilities in the software you’re using. This is an important reason to avoid using software for which source code isn’t available.
The problem with “free software” is that it’s a “package-deal” that combines good ideas about source code access with a socialist ideological compulsion. If you believe having access to source code as a user is good, you must also believe in destroying copyrights, enslaving developers, and empowering genocidal dictators to use your software “for any purpose”.
In fact, you don’t need to buy into the FSF’s socialist package-deal if all you want is software you can share and tinker with. Open Software is open for sharing, tinkering and inspection by users, and also protects developers’ rights.
Escape “Free Software” Slavery With Open Software
Unlike coercive slavery, Free Software slavery is all “in your head”. It depends entirely on the sophistry exposed above in order to ensnare developers into working for nothing. As a developer you can break free of it simply by re-licensing your code under an Open Software license instead.
When I first starting writing open software, back in the mid-90s, I released my first package under a “nonfree” license, because I disagreed with the “free software” ideology right from the start, and I wanted to be able to get paid for my work, while still sharing it with most people for free.
So I released that package under a license that allowed free use and copying for non-commercial use, and required commercial use to be licensed separately. I didn’t earn a ton of cash licensing the package commercially, but I did make a bit.
Now I prefer a somewhat different approach, as seen in the Open Artistic Licenses. Rather than disallowing commercial use, the Open Artistic Licenses explicitly protect the right of the developer to revoke the license from any user at any time for any reason, or for no reason. While this is a critical right to protect on its own, protecting it also opens the door for the monetization of your code.
Anyone seeking to use a software package for mission-critical / commercial applications would likely prefer not to depend on an Open Artistic License that can be revoked at any time. To ensure continued availability of the software for their use, they would therefore seek an alternate licensing arrangement with the developer, which enables the developer to negotiate a price for that.
As contrasted with a noncommercial-only license (which is also a perfectly fine choice if you prefer it, FSF/OSI propaganda notwithstanding) the OALs permit casual commercial use without requiring a separate license.
While the fallacies promoted by the FSF and OSI aren’t coercion, they can, when turned into a religion and proselytized with great unanimity and regularity, especialy to young and impressionable minds (all of which are strategies employed by these and other “open source” organisations) be even more effective than brute coercion in eliciting the desired behaviour.
You’ll Be Free Hackers
There’s no need to put yourself into “voluntary” slavery by buying into the FSF and OSI’s socialist propaganda. You can freely share your code, and reap the great distribution and other benefits of that, open the source code, and still make a profit and get compensated for your efforts, all completely ethically, by just correcting your thinking and removing the mind-viruses contained in the package-deals offered to you by the FSF and OSI.
In fact, to do otherwise is to betray yourself, your work, your family, and even mankind in general, all in the service of the false gods of “software freedom”, which essentially amounts to the freedom of megacorporations and totalitarian dictators to use your code “for any purpose”, without as much as paying you a dime or asking your permission. They might even ban you from accessing their “platforms” running your “free as in freedom” code.
In a recent interview2, Linus Torvalds, the originator of the Linux kernel, went so far as to openly declare his support for censorship and the suppression of anonymity online. So if you’re an “open source / free software” developer, it’s not OK for you to exclude evil dictators or megacorporations from your “free software” license, but it is OK for said evil dictators and megacorps to censor your speech or block your access to certain platforms and services entirely if you choose to protect your privacy by posting anonymously.
This is just further confirmation that the leaders of the “free software / open source” movements, despite their great technical skills, have pretty much no clue when it comes to philosophical issues such as freedom and individual rights. Their philosophical ignorance has led to the marginalisation of open source developers, and the misappropriation of their work by corporations and governments that routinely violate, undermine and destroy individual rights and human freedom.
As Ayn Rand observed, the moral is the practical, and it’s no different in this case. Developers have rights, and the proper exercise of those rights is the way towards both a better world, and well-deserved rewards for developers.
25 Years Later: Interview with Linus Torvalds. Linux Journal (April 2019): “I’m actually one of those people who thinks that anonymity is overrated. Some people confuse privacy and anonymity and think they go hand in hand, and that protecting privacy means that you need to protect anonymity. I think that’s wrong. Anonymity is important if you’re a whistle-blower, but if you cannot prove your identity, your crazy rant on some social-media platform shouldn’t be visible, and you shouldn’t be able to share it or like it.” ↩︎