Problems with Free and Open Source Software
As with most things I post here, it’s inspired by something, and I want to give full credits. This time, the post is inspired by a post called “Refuting Freetardism” by Dig Deeper, available on their site – here’s the onion, and here’s the freenet. To give a short summary, they describe a sort of reverence for Free and Open Source Software as an idea, instead of its practicality – what they call “freetardism” – that has gained popularity recently among computer enthusiasts, yet that they consider to be seriously flawed (as you can probably guess from the name assigned to it). I would like to add to their article, which I generally agree with, with my own take on what free software should mean, and what the current free software struggles with, from my experience.
Before I start, though, one amusing thing of note – I mentioned once that my very first post for this website never actually made it in, because I didn’t think it was of high enough quality. Well, if you were to read it, you’d see that it’s precisely the sort of reverence that Dig Deeper says is harmful. I guess I could already see some of the cracks back then, and DD’s article was what helped me connect them together. Also, if you take a problem with me using the word “freetardism”, I’d like to say “ゆっくりしていってね!”. I use it in the introduction because that’s what the original article is about, and it’s hardly mentioned afterwards, so don’t worry about constantly hearing “slurs”, if that bothers you.
So, what are the problems with free software? Well, a sort of unofficial guru on the matter is the Free Software Foundation. They claim that, in order for software to be free, it needs to
satisfy the following criteria, known as the “four freedoms”:
1. The freedom to run the program as you wish, for any purpose.
2. The freedom to study how the program works, and change it so that it does your computing as you wish.
3. The freedom to redistribute copies so you can help others.
4. The freedom to distribute copies of your modified versions to others.
First off, the list feels bloated, maybe because “four freedoms” sounds nicer with two F’s than “three freedoms”. Freedoms 3 and 4 are so similar to each other as to practically be the same. And really, do you know of any software that fulfils one but not the other? Because I don’t, and if you’re thinking of plug-ins, I would disagree; you’re not distributing copies of the software, but copies of your own software made on top of the original software. You’re free to distribute a macro for Microsoft Word, but you can’t distribute Microsoft Word, and that’s what’s needed for either freedom to work. Oh, and while I numbered them 1-4, the original version is actually numbered 0-3, to keep in line with the way counting integers works in computers. This is rather petty, I’ll admit, but it nonetheless suggests that Richard Stallman, the founder of the FSF and an experienced programmer, likely had other programmers and power users in mind as the target audience for his work.
This, to me, is the biggest flaw of the four freedoms. A more expanded version mentions how having an open source is a pre-requisite for most of them, but while that might’ve been true in the small programming circle that Stallman was a part of in the mid-80s, for 99% of computer users it means jack-squat. That’s why I would change the second freedom to state “The ability to change the program in a meaningful way”. This is more wishy-washy, but such is the reality, treating things as black-and-white will only lead to issues, because the world is grey. For a typical computer user, a meaningful way to change the program is not through its source code, but through its settings. Focusing on making good settings, rather than open source, is beneficial to both popularising free software, and to making it actually good. Here’s an example.
I use Linux Mint on a daily basis, and the default archive manager there is GNOME’s archive manager (presumably the same on Ubuntu). It’s free software, sure, but it fucking sucks. You can choose a name and format for the archive, you can split it into volumes, and encrypt if the format supports it. That’s all the customisation you get. It doesn’t even tell you which formats support encryption; you just have to keep clicking until you stumble across one that does. The most egregious problem is the lack of compression quality. The program seems to just try to compress things as much as possible, everything else be damned. This doesn’t matter much if you just want to put a few pictures and documents in an archive, but what about some larger files? Recently, I had to copy my personal data over to my laptop for backup, which included things like 20 gigabytes worth of music, in either MP3 or FLAC format. Both of these are already compressed, so you cannot compress them further in any meaningful way. But GNOME’s Archive Manager will try to regardless, and I’ll end up staring at the progress bar for a ridiculous amount of time.
Of course, GNOME had to screw that up, too, because the manager’s progress bars are completely borked and never move from their original position, whether during archive creation or extraction. Again, not a big deal with small files, but with large ones, I can stare at the bar for 10 minutes, and not know whether I have 2 minutes left or 20. When it finally finishes, it just closes without a word or sound. Everything about this is idiotic and annoying to use. Even if I was a programmer and could modify the code to fix the issues, it would take much more time and effort than getting a different program. And why should I, anyway? I want to store files in an archive, and I was given a program to store files in an archive, why would I go and rewrite it to actually be good at the one thing it’s supposed to do? Contrast this with something like WinRAR, which in spite of not being open source, offers me more customisation options – more meaningful change – so that I don’t even have a reason to dig around with the code.
Then, there is the matter of licensing. Dig Deeper has already talked about how the GNU General Public License (the license used as the gold standard for free software) can be retracted and broken. I will instead focus on the inverse. You see, a license, a law, a regulation, is only as strong as the enforcement of it. This, in turn, is not something that is (or can be) regulated by the license, so it falls upon the individual or the company to decide how to approach things. Nintendo, for example, is notoriously strict about enforcing their property rights, shutting down almost all fan modifications the moment they gain traction. By contrast, Valve’s Source Engine and its related development software, while also being closed source, is not as strictly guarded, so people have been able to make total conversions of Valve’s games, create entire communities around modding and fan-made creations, and even release games with their intellectual property, like Portal Stories: Mel. Valve could shut these down at any time, it is legal for them to do so according to the licenses, but they just don’t do it. Same license, but it’s the enforcement that matters.
Free software and proprietary software are of course different, but many of these differences come about due to the ideologies and circumstances of development, not because of the source code being open or closed, or the licenses used. Something being open source doesn’t inherently make it any more private, any more customisable (meaningfully), or any better. Similarly, something having a restrictive license doesn’t immediately mean you cannot touch it in any way. Sure, the degree to which you can do so depends on the whims of the property owner, which can be a problem, but the free software license is not the silver bullet for this, partly because it doesn’t work on…
The four freedoms are all fine and dandy when we’re dealing with software, with products ran on our local machines. But increasingly more and more of our computer usage relies on the internet, which turns many products into services. Signal, an instant messenger, uses encryption algorithms that are open source, but all the traffic still goes to their server. Even if that server uses 100% libre software, there is still maintenance to be done, electricity to be delivered, domains to be registered, and so on, and all of this requires constant input of money, time and effort. This website is hosted on a local machine, with a FOSS operating system and server software, but I still have to pay for the electricity to power it up, I have to troubleshoot it if things don’t work, and I had to pay for the clearweb domain to be registered (which is an annual bill). Holding just text and some images is simple enough, but if I wanted to host my own PeerTube instance, for example, I’d have to further invest in a much better connection than I have currently, unless I’m fine with serving no more than 360p to 15 people, or 1080p to 2 people.
This isn’t even the biggest problem. A large part of the internet is connecting people to one another. This is where the reverence for free software struggles the most, and that struggle can actually lead to anxiety, stress and even broken relations. When in the confines of my own machine, I am free to do whatever I want for the sake of pleasing the ideology, no matter how inconvenient or roundabout it is. But when other people are involved, you need some common ground. Try refusing e-mails that aren’t PGP-encrypted, and see the cobwebs grow on your inbox. I can complain about Microsoft all I want, but if my future workplace requires me to join meetings with Microsoft Teams, what can I do? I can explore all the wonderful and secure messengers and alternative networks, but in practice they’re useless, when all the people I’d actually want to talk to are on Discord and Instagram. If I go with the flow, I go against the ideology, creating worry and anxiousness, but if I stand my ground, it’ll be a fight fought on a lonely hill.
Besides, what matters is not the software, but the service. When people join and use Facebook, it’s not because the program is revolutionary, but because it offers a convenient way of keeping in touch with just about anyone. Even if Facebook released their source code tomorrow, compliant with the GPL, it wouldn’t make it any more secure, private or worthwhile. Even if you could host your own instance, most people would just flock to one because of network effects, and the costs associated with handling such a huge network would force the owner to look for sponsorships, letting advertisers and other scum get in the way of things again. Free and open source software does absolutely nothing to alleviate this. A service can use 100% free software, but still go down and be unreliable. It can still close operations due to lack of funding. It can still be raided and hacked. It can still engage in censorship and tracking. It can do all that without ever breaking the rules of the GPL, nor infringing on any of the above stated freedoms.
What is one to do, then? Simply put, screw the ideology. Drop the label and the associated problems, because they are not worth it. The GPL is far too restrictive to be meaningful in a world dominated by the internet, where not everyone’s a programmer, anyway. Most of the things that FOSS proponents use to persuade people to join their ranks are not inherently included in FOSS, nor are they inherently excluded from proprietary software. They’re just more common in FOSS because the personality traits that make people interested in FOSS also make them care about these things. FOSS is not the reason, just another symptom of the real reason. Find out what that reason is for you, and support that, instead.