Free Software Is a Failure
Author: Jake Bauer | Published: 2021-11-08 | Updated: 2026-08-21
以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。
Author: Jake Bauer | Published: 2021-11-08 | Updated: 2026-08-21
Based on certain kinds of feedback I've received in response to this post (which says a lot about the current state of Free Software culture), I feel the need to say that if you disagree with what I have written, I would appreciate it if you would voice those disagreements by criticising the ideas that I've presented rather than assuming things about my character or level of experience and insulting me. I have no problem with people disagreeing with me; I appreciate having discussions in good faith, and hope that you would give me the benefit of the doubt. You might even be surprised at what I actually believe.
In this post, I use the term "Free Software" to mean software licensed with Copyleft licenses, and to explicitly differentiate it from permissively-licensed "Open Source" software (which is what the Free Software Foundation and Co. also do).
I used to be a staunch software freedom evangelist. I used to license all my works GPLv3-or-later and CC-BY-SA wherever I could, and I used to believe strongly in the words of Richard Stallman. I have since started to think more about the real effects of the Free Software movement and have changed the way I write and license my software as a result. Although I believe FOSS as a concept is still very important, I simply no longer believe in the Free Software movement.
I’ve come to the conclusion that Free Software is an abject failure. While Free Software may on its face sound like a good concept—especially with the kind of language often used to describe the movement and its opponents—when put under scrutiny, the institutions and practices that make up the Free Software movement fundamentally fail at their stated goals. The Free Software movement is doing more harm to FOSS than good.
Not only is it an ideological mess, it hampers collaboration, it is legally ineffective, it makes the lives of developers harder while doing nothing actually useful for users, and it fundamentally gets in the way of a thriving, free, and open software ecosystem.
Why Software Should Be Free by Richard Stallman presents an argument against having owners of software and explains the harm done by obstructing software development through proprietary licensing. He posits that software with obstructions results in fewer users, the inability for users to fix programs, and the inability of developers to build upon prior knowledge or work. He also states that the justifications one uses for keeping ownership of the software (which he equates with keeping the software proprietary) are emotional (i.e. “This software is mine, and I wish to control it”) and economical (i.e. “I wish to become wealthy by programming.”). He shuns these excuses and spends the rest of the document refuting those excuses, and explaining why the existence of proprietary software is bad and why the alternative—software not having owners—is better. By and large, I agree with this essay: I don’t think software should have owners. Instead, I believe software should be released into the public domain as much as is possible.
However, in nearly every Free Software project which exists today, there is a clear “owner” of the software—someone who is the copyright holder, benevolent dictator for life, or simply de facto leader of the project and through whom all contributions must flow. Whether we’re talking about large projects that are too large to fork and maintain by anybody but large, well-funded groups such as the Linux kernel (in which Linus still has complete veto power by the way), Qt (in which the company controls the development of the software and simply allows older versions to be used under a free license), Android (where Google maintains pretty solid control), or smaller projects which have simple leaders. As long as there is a copyright statement, there are one or more owners to be aware of.
Additionally, the GNU Manifesto, aside from calling the Open Source movement an “amoral approach”, goes on to say that GNU “is not in the public domain” and will have restrictions placed on further modifications in the form of disallowing proprietary modifications, with the justification given by Stallman being: “I want to make sure that all versions of GNU remain free.” With that, Stallman does exactly what he shunned in Why Software Should Be Free. He uses his emotional attachment to the software, something he said was an excuse people use to defend why software has an owner, to justify his want to control how others can distribute and modify his code. He is effectively saying “this is my creation, and I wish to control what others can do with it” while also clearly assigning an owner to the software.
Update 2021-12-13: I was recently made aware of an article in which Richard Stallman advocates against positive changes to copyright laws because of how it would hurt Free Software. Instead of making software free of copyright after 5 years, he advocates for maintaining copyright control because it would hurt the control that Free Software licenses would have over the distribution of software later on. It’s not enough that the software would still fulfill the four pillars of free software after the 5 years is up, control must be maintained over how other people can distribute and use the software in their products in case they ever decide to fork it and make something proprietary from it. Not only does he not trust that people would use only the Free version (as if we need to be protected by Free Software licenses lest we fall prey to encountering proprietary software), he is, in essence, advocating for maintaining ownership over software even though the change to copyright legislation would be positive for society overall. The article is called: How the Swedish Pirate Party Platform Backfires on Free Software.
Even if you’re also staunchly against proprietary software, you should at least recognize the hypocrisy in this stance.
If software is not in the public domain, then, by definition, it has to have at least one owner. If Stallman can dictate how others can use his software—even if it is more free than most proprietary software—then it clearly has an owner.
Simply put, Stallman and others in the Free Software community use the exact same excuses that he criticized in Why Software Should Be Free as justification for their actions. GNU, the GPL, and seemingly the entirety of Free Software as it stands today are all based on the same premises as proprietary software. They use existing copyright systems in what they deem the “right” way while simultaneously criticizing the way others use them as wrong.
The Free Software movement comes off as both a “cult of personality"—worshipping Richard Stallman and his teachings while ignoring the inconsistencies between his words and his actions—as well as a “cult of ideology"—shunning those who disagree with the manifestos and the “way of life” that the movement espouses to an extreme degree. As long as you, as a developer, do everything within the framework of the GPL and the culture of Free Software, you are considered ethical and good. As soon as you wish to do something outside of this domain—even by using a more open, permissive license—you are considered amoral.
In an article where Linus Torvalds criticizes the GPLv3, Torvalds even says:
“I think the GPLv3 is expressly designed to not allow [the meeting between open source and free software people]. Exactly because the FSF considers us open source people ‘heretics.’”
One of the stated goals written in the GNU Manifesto is:
“Finally, the overhead of considering who owns the system software and what one is or is not entitled to do with it will be lifted.”
One look at the GPL or any other Free Software license will tell you that they have utterly failed at this. For example, the GPL has become so complicated that only a programmer with relatively advanced legal knowledge and ability to read and properly understand “legalese” will be able to decipher it to know what they are able and unable to do with it. There exist websites which explain the license in plain English, but even those say their explanations are no substitute for reading the license. There are very specific meanings that many of the words in the license take on when put in the context of our modern legal system so, while you may be able to read the GPL and think that you understand it, unless you are well-educated in this legal domain, you probably don’t fully understand the true meaning and effect that the words of the license would actually have in court.
Especially because the ramifications of the GPL are still not even fully understood by lawyers themselves. Many large companies will shy away from the GPL simply because they don’t want to take the risk of using GPL-licensed code improperly and being forced to reveal their proprietary code. While I don’t agree with proprietary software as a concept, the fact that even lawyers—who are supposed to be expertly trained in the kind of language used in the license—are uneasy about its terms further reinforces just how unapproachable it is to the everyday software developer. GNU and the GPL have done nothing to remove the overhead of considering who owns software and how it can be used.
Update 2023-07-13: It has become especially clear how few people actually understand what the GPL does and does not permit based on the responses to changes that Red Hat made to how they offer their source code (more on this later).
Since the development of the GPL is reactionary—that is to say, its development and growth over time was in response to discovered workarounds—there is now even more overhead by way of the extra complication of the “-or-later/only” clauses. So this is now a license that has multiple versions which are not backwards compatible. A project licensed under the GPLv2-only cannot integrate GPLv3-or-later code without being re-licensed as GPLv3. The Linux kernel is an excellent example of this.
Linus Torvalds even came out strongly against the GPLv3 and the process by which the FSF created the license. Many others in the industry also saw this as an extreme and unnecessary move by the FSF to wield the ultimate power over the GPLv3; all because a manufacturer put Linux in their products and blocked users from running their own modified software on that hardware. The absurdity of this line of thinking is compounded by the fact that this had absolutely nothing to do with the Linux kernel since it’s the system’s firmware that would stop users from running different software. This seems to many as just an excuse to expand the scope and powers of the GPL over something completely out of the scope of the GPL-licensed software. The move by the FSF, the actions of Stallman, and the “tivoization” rhetoric are even heavily criticized by Software Freedom Conservancy member Bradley M. Kuhn.
Putting aside the political manoeuvrings of the FSF, the mere existence of an “-or-later” clause is a ridiculous thing to attach to a license. Anybody who licenses their project under a GPLv3-or-later license puts a lot of trust in the stewards of the GPL that the next version of the GPL will align with their values and goals; a GPLv3-or-later project will be able to be licensed under a GPLv4 license, whatever the clauses of that GPLv4 license. This is a lot of stock to put into a group of people like the FSF who were so dogmatic and exclusionary in their development of the GPLv3.
The reality of the GPL is that there is still a lot of overhead in considering who owns the software and how it can be used. Not only in whether or not a developer should choose version 2 or version 3 of the license depending on their goals, but also for developers and users alike who try to understand the language of the license to determine what they can do with the software and, if they are integrating some GPL-licensed code int
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。