( nks feed nks@nks.sh )

without the freedom to compile my freedom is worth nothing

Have you ever used Gentoo Linux for a significant amount of time?

If not then maybe Crux? Source Mage?

The term "free software" gets thrown around a lot. People are right to care about this stuff because without freedom, we are not free.

This sounds totally obvious, but think about what it actually means. Throughout history, we, the normal people, have had to do what the people above us want. While computers haven't entirely flipped that concept, they've at least helped to make it a lot more wonky. It's much easier now for anybody to learn anything, say anything, than ever before, even if they can't afford a computer of their own (although libraries shutting down everywhere might be changing that).

The point of free software is to give the power to the people. Just like once you've bought a car you can do what you want with it, so you should be allowed to do what you want with software you own (modern "free software" seems to be very fixated on the "free beer" idea as well as anything else, which I think is nice but significantly less important).

Now, there are certain niches particularly within free software where people moan about software bloat. These people like to criticise pretty or user friendly pieces of software because they have more code in them. Most of the time, they're a bit over the top, with people like the suckless project setting arbitrary code limits to stick to and other such practices which are probably kind of detrimental in the long run.

However, they are still onto something, to an extent. As an example, I wanted to build Firefox from source recently. I was running Gentoo, that's just what you do, right? It turns out (not surprisingly) that Firefox depends on Rust, so first I had to build the Rust compiler. That took a very long time. It also needs GTK. It also needs Node.

During the process of building all this stuff, my computer was unusable for anything else, and it took a long time to get there. Like, a full day. I'm not even including building all of the things I need to be able to run Firefox here, like the X server (takes about another day), the window manager (Gnome takes about a day), and the Linux kernel itself (although this takes less than an hour).

Some people would say that I should simply buy a new computer, or do the sensible thing and use precompiled binaries. Neither of these things actually solve the problem. My computer is less than five years old, and while it was a fairly cheap computer back then, it still manages most things fine these days - the hardware isn't (and shouldn't really) be a problem anymore. My computer, in my (entirely anecdotal, non-rigorously researched) experience, is uninspiringly average, outside of the world of the developers building the software.

Computers are getting faster, but software isn't getting any faster to build - in some cases it is getting slower. Is the software really that much better than it used to be? Is that build time justified?

Most of the time, I do use precompiled binaries, but the point of free software is to give me the freedom to do what I want with the software. Sometimes I can't use binaries, sometimes other people won't be able to use binaries. I don't want there to come a time where I need to build a program I rely on from source, and find that my computer is not up to the task.

Mozilla is considered to be fairly moral by many people, but what about a different program where there are even more reasons people might want to build it from source? Something like Visual Studio Code, whose prebuilt binaries contain special "Microsoft specific customizations" which I might not want? VS Code is an Electron editor, so the whole of Webkit has to be built to run it, and that takes a while. Building the software from source to avoid the unwanted telemetry features is made more difficult by the choices of tools used to write the program. Fortunately projects such as VSCodium exist to provide those binaries, but there's no guarantee that such a project will be around forever.

To conclude, it's really great if your computer has 64 gigabytes of RAM and can do anything you throw at it in less than a millionth of a second. But most of the population with computers don't have such machines, and acting as if they do is really quite selfish. If my computer can compile what I need, play music and emulate SNES, why should I need to upgrade?

October 10, 2019