paritybit.ca

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 580c13579f5d17f99ae540069d857a5e9ffeaddb
parent db87a69aedb6f15b6c993d2b8cefca5a4ca19fed
Author: Jake Bauer <jbauer@paritybit.ca>
Date:   Wed,  3 Nov 2021 05:18:10 -0400

Draft blog post

Diffstat:
Apages/blog/free-software-abject-failure.md | 355+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 355 insertions(+), 0 deletions(-)

diff --git a/pages/blog/free-software-abject-failure.md b/pages/blog/free-software-abject-failure.md @@ -0,0 +1,355 @@ +## Free Software is an Abject Failure + +[//]: # "Free Software is harmful. It may sound like a good concept on its face—especially with the kind of language often used to describe the movement and its opponents—but, when put under scrutiny, the institutions and practices that make up the Free Software movement fundamentally fail at their stated goals. Free Software is an ideological mess, Free Software hampers collaboration, Free Software is legally ineffective, Free Software makes the lives of users and developers harder, and Free Software fundamentally gets in the way of a thriving software ecosystem." + +[//]: # "main.min.css" + +[//]: # + +<div class="byline"> +<b>Written By:</b> Jake Bauer | + <b>Posted:</b> [DATE] | + <b>Last Updated:</b> [DATE] +</div> + +<p class="note">I want to preface this by saying that 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 quite 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. I implore you to genuinely consider what I write in this +post and to approach it with an open mind. I understand that your knee-jerk +reaction will likely be to reject what I am saying as anti-freedom or +pro-corporation but that is not the case. I simply no longer believe in the Free +Software movement.</p> + +Free Software is an abject failure. It may sound like a good concept on its +face—especially with the kind of language often used to describe the movement +and its opponents—but, when put under scrutiny, the institutions and practices +that make up the Free Software movement fundamentally fail at their stated +goals. Free Software is an ideological mess, Free Software hampers +collaboration, Free Software is legally ineffective, Free Software makes the +lives of developers harder, and Free Software fundamentally gets in the way of a +thriving software ecosystem. + +### The Failure of the Free Software Ideology + +First, let's analyze the ideology of the Free Software movement and show how +the philosophy of the Free Software Foundation and GNU are based upon the same +premises as proprietary software. + +[Why Software Should Be Free](https://archive.md/ORsof) by Richard Stallman +presents an argument against having owners of software, and explains the harm +done by obstructing software development through proprietary licensing. It +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 argues 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 why those excuses and the existence of proprietary +software are bad, and why the alternative—software not having owners—is better. + +The [GNU Manifesto](https://archive.md/V14pR), 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 that: +"I want to make sure that all versions of GNU remain free." + +With that, Richard Stallman falls upon the same behaviour that he previously +shunned in _Why Software Should Be Free_. He uses the emotional argument of "_I_ +want...", effectively saying "this is _my_ creation, and I wish to control what +others can do with it". + +Simply put, Stallman uses the exact structures which he criticized as +justification for his actions. The GPL uses copyright to enforce its position, +uses existing systems in "the right" way yet criticizing the way others use it +as wrong. As long as you, as a developer, do everything within the framework of +the GPL, you are 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 unethical. In this sense, Free Software can be considered harmful to +a thriving software ecosystem. + +Another very common sight in the Free Software community is to see accusations +of "software theft" and "hostile forks" among other terms. If software is not +supposed to have an owner, as _Why Software Should Be Free_ advocates, what +exactly is being stolen? Why do _you_ as the creator of a piece of software care +if some company takes your software and uses it in their product or makes +proprietary modifications with it? Even more, why do members of the Free +Software community [shun and criticise a group of +developers](https://web.archive.org/web/20211021085708/https://news.ycombinator.com/item?id=17007834) +forking a Free Software project to extend it for their own needs while +_still keeping it under the same license_ (an Open Source license, no +less)? _Why Software Should Be Free_ specifically outs this need to +control what happens with one's software as one of the main +justifications for proprietary licensing + +To be frank, the Free Software movement comes off as both a "cult of +personality"—worshipping Richard Stallman and his teachings, 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. + +### The Failure of the GPL + +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 will tell you that they have utterly failed at this. The +GPL, especially with version 3, has become so complicated that only a programmer +with relatively advanced legal knowledge and ability to read "legalese" will be +able to decipher it to understand what they are able and unable to do with it. +There do exist websites which explain the license in plain English, but even +those say their explanations are no substitute for reading the license. + +Furthermore, the ramifications of the GPL are still not fully understood by even +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 software. While I don't agree with +proprietary software as a concept, the fact that even lawyers are uneasy about +the terms of the license further reinforces the failure of GNU and the FSF. + +And even more, because the development of the GPL is reactionary—that is to say, +it's development and growth over time was in response to workarounds—there is +now the extra complication of the "-or-later/only" clauses. This is a license +which has multiple versions which are **not** backwards compatible. A project +licensed under the GPLv2-only cannot integrate GPLv3-or-later code without +re-licensing themselves as GPLv3. The Linux kernel is an excellent example of +this. + +And _even even_ more, the 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. + +Simply put, the reality of the GPL is that there is now a lot of overhead for +developers. + +Those who wish to integrate GPL-licensed code into their otherwise +non-GPL-licensed projects are faced with the decision to relicense their code +under the GPL, remake the functionality of the library under a more open +license, or otherwise abandon those efforts altogether. While the GPL may +"prevent" corporations or people from taking GPL-licensed code and integrating +it into a proprietary product, it also prevents literally any other +non-GPL-licensed project from using GPL-licensed code, even other FOSS projects. + +And, it's not like the GPL actually prevents corporations from stealing +GPL-licensed code and integrating it into projects. While there are plenty of +corporations who freely comply with the GPL (and should be applauded for being +honest), there are plenty more, such as VMWare, who don't comply and yet [don't +face +consequences](https://web.archive.org/web/20211027160559/https://sfconservancy.org/news/2019/apr/02/vmware-no-appeal/) +or, even if a lawsuit is successful, it is usually at the cost of [members of +the FOSS community](https://archive.is/lspvL) who burn out or are left +disenchanted by the whole process. + +The moral of the story is: while the GPL may not cause as much of an obstruction +or be as unethical as proprietary software, it is frankly not that much better. +It causes, conflict, is difficult for laypeople to understand, and harms +developers of non-GPL-licensed FOSS software. It is the reason why the BSDs +cannot take improvements made in the Linux kernel and directly integrate them +into their own kernels and [it is the reason why ZFS cannot be integrated into +the Linux kernel](https://itsfoss.com/linus-torvalds-zfs/), but can be shipped +with FreeBSD, to name two significant examples. + +The GPL-family of licenses attempt to solve a societal problem by restricting +the distribution of software in a manner not unlike the so-called [Ethical +Software](https://en.wikipedia.org/wiki/Organization_for_Ethical_Source) +movement does. One cannot solve the copyright, ownership, or distribution +problem of software by maintaining such systems. This is a problem to solve on a +societal level, not on the level of individuals software projects. This simply +restricts innovation, sharing, and collaboration between developers. + +### The Failure of the Free Software Culture + +The GNU Manifesto speaks a lot about how + +> "Users will no longer be at the mercy of one programmer or company which owns +> the sources and is in sole position to make changes." + +But a cursory look at the current landscape of so-called Free Software will tell +you that this is simply not the case _at all_. Users are absolutely at the mercy +of the maintainers of software projects to integrate their changes because of +the current model of software development. + +Our current model of software development actively _discourages_ forking +projects to mold software into something that fits your needs. It does this not +only through the public outcry and abuse levied at those who fork projects not +meeting their needs (see the previously mentioned example of Gitea and [this +article that perfectly exemplifies how the Free Software culture views +forking](https://www.techrepublic.com/blog/linux-and-open-source/dont-fear-the-fork-how-dvcs-aids-open-source-development/)), +but the sheer size of most major software projects makes forking and actively +maintaining such a piece of software an utter nightmare. + +In nearly every Free Software project, 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 to whom all contributions must flow +through. + +Whether we're talking about large projects too large to fork and maintain by +anybody but a massive corporation such as the Linux Kernel, in which +Linus still has complete veto power, or Qt, in which the company controls the +development of the software and simply allows older versions to be used under a +free license, or smaller projects which have leaders. + +The goal of Free Software as laid out by _Why Software Should Be Free_ was to +create a world in which there were no owners of software and in which +distribution was not restricted. Yet, despite this, the GPL family of licenses +and the culture of Free Software actively encourage both of those things. The +GPL places strict restrictions on the distribution of GPL-licensed software, and +that plus the culture surrounding Free Software encourage ownership of the +software by the copyright holders. + +From the point of view of _Why Software Should Be Free_, the GPL, combined with +this culture, is hardly much better than the world of proprietary software we +had before. _Why Software Should Be Free_ calls out ownership of software and +the restriction of distribution as unethical and harmful, yet Free Software +encourages both of these. + +The GPL acts effectively as a proprietary license that allows you to the things +it deems ethical, so long as you abide by the terms of the license with regards +to the distribution and re-licensing restrictions. As long as you are in this +"club", everything is fine and dandy and you can make your changes and push them +to your favourite projects. As soon as you leave this club and want to pull code +from a GPL-licensed project into your MIT-licensed project, well, sorry, too bad +for you. So much for "free as in freedom". + +For all this talk of Free Software being the ethical option and the GPL being +the ultimate defender of user and developer rights, it completely goes against +the ethical principles laid out in _Why Software Should Be Free_. + +### The Way Free Software Is Viewed + +Frankly, Free Software is often viewed as a farce outside of the dedicated Free +Software fanbase. The FSF has been slowly descending into irrelevancy for the +past two decades as they struggle to do anything meaningful with their time and +resources, and instead favour making a lot of unproductive noise. Take, as +recent examples, how they [mailed a hard drive to Microsoft telling them to put +the Windows 7 source code on +it](https://web.archive.org/web/20210605120216/https://www.fsf.org/blogs/community/why-freeing-windows-7-opens-doors), +or how they [accuse Apple of "censoring free +software"](https://web.archive.org/web/20211011152025/https://www.fsf.org/campaigns/apple) +simply because Apple refuses to allow GPL-licensed projects on their app +store—ignoring the plenty of other "free software" available there—and +criticizing them for not supporting their specific chosen free media codecs—once +again, ignoring the plenty of other free media codecs which are otherwise +perfectly supported. + +This reputation of preferring ideological book-thumping over meaningful action +is nothing new. Most who are familiar with Linux are likely familiar with +Richard Stallman's ["GNU+Linux" +rant](https://web.archive.org/web/20211102101640/https://www.gnu.org/gnu/linux-and-gnu.html) +in which he squabbles and nitpicks over the relevancy of GNU to the Linux name. +Ignoring that the only significant contributions to the Linux system GNU can +claim is the compiler, the coreutils, and the C library. While these used to be +relatively significant in the early 90s, most Linux systems run far more non-GNU +software than GNU software. + +In fact, even those base GNU components are quickly fading into irrelevancy as +projects like Clang/LLVM, rewrites of coreutils to be faster and cleaner (e.g. +Busybox or various Rust projects), and other libc's such as muslc are gaining +more and more traction each passing day. GNU is simply failing to make any +meaningful and actual progress, and is grasping at the straws in an attempt to +remain relevant. Not only have other projects such as OpenBSD long since +abandoned things like modern GCC due to later versions becoming unmaintainable, +buggy behemoths, GNU themselves haven't even released their HURD kernel in any +meaningful capacity despite promising to create such a thing since _before Linux +existed_. + +Speaking of fading into irrelevancy, many of the Free Software institutions such +as the Software Freedom Conservancy and Free Software Foundation Europe have +been reliant on such lawsuits as their means to exist. It has gotten so bad that +[the SFC have tried to bring lawsuits on behalf of the users of GPL +software](https://lwn.net/Articles/873415/). This is something which has little +basis in actual copyright law, but is the only option they have left when +companies either skillfully hide their GPL violations or the owners of GPL +software are unwilling to enforce their license against large opponents. + +Outside of the cult of Free Software, GNU code has a reputation of being +resource-hungry, buggy, bloated, or annoying and frustrating to work with, as +many who use alternative libc's, compilers, utilities, or programs will attest. +GNU creations have a reputation for being needlessly complex; solving problems +which don't really exist in the first place if you write good software. The GNU +Info system is a good example of this. + +And finally, we can talk about how the conduct of Richard Stallman himself +reflects on the whole Free Software movement. The Free Software movement went +through its own little "constitutional crisis" over the question of whether or +not to keep him on as the face of Free Software after he made some comments on +an MIT mailing list about a sensitive topic. I won't talk much about that +situation specifically here, since it has been covered to death in other media +outlets and can be easily searched for. Instead, I will give another example of +the utterly inept and arrogant conduct of the creator and face of the Free +Software movement. + +In 2007, Stallman sent [a message to the OpenBSD-misc mailing +list](https://marc.info/?l=openbsd-misc&m=119730630513821&w=2) entitled _"Real +men don't attack straw men"_ in which he accuses the OpenBSD folk of making +straw-man arguments about Stallman, and then using those arguments to attack his +credibility. If you read through this mailing list thread, you don't have to go +far to realize that Stallman has absolutely no clue what he's talking about. He +bases his opinion of OpenBSD on "what I have heard" and presumes that the +OpenBSD folk care whether or not he recommends their system. He proceeds to have +everything he said get taken apart by the replies which point out all the +inconsistencies in his own arguments and stances. + +### Where Do We Go From Here + +I think, by now, it is accurate to say that Free Software is an abject failure. + +It has failed at its stated goals through both the licenses and the culture it +has created and has instead perpetuated the paradigm of software ownership and +the use of unethical and flawed copyright legislation, and has done very little +to prevent corporate takeover of projects, improve the software development +landscape, or make the lives of developers easier. It has done nothing that more +ethical, permissive software licenses and the culture of collaboration born out +of projects such as BSD Unix didn't already do, except create a toxic subculture +of Free Software cult worshippers. + +None of this is to say that proprietary licenses are okay or even that Open +Source is the alternative. In fact, the Open Source Initiative is not all that +much better than the Free Software Foundation, it just has a mostly different +set of problems which are out of scope for this essay. + +For the most part, I agree with _Why Software Should Be Free_. I mainly agree +with Stallman's points that software should not have owners and that restricting +software distribution is unethical. He has perfectly valid and good ideas in +that essay, yet misses the mark with their implementation. I believe that +software shouldn't have owners. Nobody should get to control how their software +is used, distributed, hacked upon, or changed. + +The only licenses which _truly_ meet all these criteria and can be considered +ethical are public domain licenses. Licensing your code under [the +Unlicense](https://unlicense.org/), the [0BSD +License](https://choosealicense.com/licenses/0bsd/), or the [CC0 +License](https://creativecommons.org/share-your-work/public-domain/cc0/) means +that you do not place _any_ restrictions on the software whatsoever. People +don't even have to mention your name or your project when they use your code. + +If you do at least wish to have your name attached to the code, commonly used +permissive licenses are the best option. Licenses such as the [MIT +License](https://choosealicense.com/licenses/mit/) or, my preferred license, the +[ISC License](https://choosealicense.com/licenses/isc/) impose no further +restrictions other than maintaining a copyright notice for code used in other +projects. People are free to do whatever they want with your code, so long as +they keep your name on parts that you wrote. + +Not only do these options provide far more _real freedom_ to developers, they +remove the overhead of having to think about who owns the software. In the case +of software in the public domain, you don't have to worry at all, and, in the +case of permissively-licensed software, you just have to copy-paste a copyright +statement. These licenses are simple and easy to understand. You don't have to +worry about a mob coming after you for forking the project and morphing it into +something that serves your needs, nor do you have to worry about being sued for +an accidental violation of a license that lawyers aren't even confident about +getting right. + +If this post intrigued you and made you want to learn more, consider checking +out [A Critique of Free Software](/a-critique-of-free-software) (from which I +have pulled many sources for this post), and [The problems with the +GPL](https://unixsheikh.com/articles/the-problems-with-the-gpl.html).