fleshless.org No. You move.

On Arch Linux and user freedom

Over the years, I've had countless conversations about Linux distributions and their pros and cons. One recurring topic in these conversations is the idea that Arch Linux being flexible is a myth. Now why do people think it's a myth? The overwhelmingly most common argument is: “You can't remove systemd, therefore it's not as flexible as, say, Debian”. And that has some truth to it, but usually not in the way it's meant to.

See, I think that there is a huge disconnect between two groups of people here, mostly due to a complete lack of understanding of a simple fact: User freedom, the way a lot of people see it, is almost completely opposed to the concept of simplicity in system design.

People who say that Arch is not flexible usually don't actually mean flexibility or simplicity. What they mean is “I can't do pacman -S sysvinit and get a nicely working system”. And that is true, you can't. But I want you to think about something for a minute: why can you do that with Debian? Don't read further till you come up with some sort of answer in your head.


Got your answer? Good. Now answer me this: why can't you as easily swap systemd for OpenRC, s6 or Epoch? Does the answer to that align with the answer you gave to the first question? Probably not, and here's why:

The reason you can easily revert to the old init/rc system is the same as the one for not being able to switch to OpenRC, s6 or Epoch as easily: the old system is supported, but the others are not. And that is something so many people insist on bashing Arch for.

Debian — and I'm only using it as an example here — supports two init/rc systems. To put in anything else and make it actually work decently, you would need to support it yourself. And the ammount of work that is required to do so is what we call flexibility. The less tightly coupled components of a system are, the easier it is to make something with it that is not in any way supported officially.

Debian gives you a product with specific select choices of how to build your system. The result is a system trying to accomodate for a wide variety of usecases, which inevitably leads to complexity, as you need to make sure different components work well together and provide at least some functionality out of the box. That is what people call user freedom.

Arch gives you a toolbox and a single loosely coupled supported base for a system. What you do with it is up to you entirely. Including not using the base group at all. That is what we call simplicity, which leads to flexibility, but raises the entry bar a lot. To actually make any use of the freedom Arch provides, you need to know what you are doing. Some people don't want that, and it's completely fine not to. But don't confuse what distros like Debian give you with system flexibility. It's not.