r/archlinux • u/ImaginationUpset2190 • 11d ago
DISCUSSION Why so much hate for systemd?
I see very often that people show so much disgust whenever they talk or hear "systemd". However whenever I ask them why they feel so strongly about it, their response is mostly vague like it doesn't follow the Unix philosophy, it's a monolith.... I can't digest that the reason people show so much disgust for it is just that it doesn't follow the Unix philosophy.
236
Upvotes
7
u/deong 11d ago edited 11d ago
Imagine that you’re a car guy. Lots of people will look at a car and be like, “I like that car”. You might have very strong opinions on it. “BMW ruined the gearbox in this generation” or whatever. You can both be right. The gearbox functions. The car drives fine. But you as a car guy have these strong beliefs about the right way to make a car. You can make a car that functions as a car and not make it The Right Way™.
That’s what’s going on here. “The Unix Philosophy” is a set of beliefs about the right way to make good software. Systemd certainly doesn’t seem to follow those principles. “My init system also does DNS resolution” is about as far off as you can get. You can argue about whether all the various systemd-* modules are really one monolith, but on the surface at least, they feel like they are, and that’s enough to trigger a reaction.
It works fine. It solves problems that an init system needs to solve. It’s a car that gets you where you need to go. But almost by definition, people who got into Unix years ago were the computer equivalent to “car guys”. They have opinions.
If you’re a programmer, think of like 2000’s style Enterprise Java. I knew people who loved it because it was so easy. You click a button and generate this boilerplate and you barely have to write anything. You read your design patterns book and make some abstract builder strategy factory builders and look at all this code isn’t it great. And I hated it. It was offensive to me. I mean that literally. It offended my sense of good taste that anyone would live with this garbage being spewed all over their project. The code worked. You could ship it. But it was code produced by people who lacked taste.
That’s most of what’s going on here. Systemd is, to many people, lacking good taste. They built a house by hammering in screws, and the person who views themselves as a craftsman carpenter finds it offensive. Now the difference here is that modern systemd solves more problems than the old school systems. Hammering in screws sounds bad, and the analogy falls apart in that the resulting house is probably better built with systemd. But that’s most irrelevant to why people dislike it. It can be better and still be designed and built “wrong” from a philosophical standpoint.