I honestly don't really care about this whole init debate, from a technical standpoint. I don't see a compelling reason to prefer systemd, and given the fact that it's changing a system that's worked fine (with a few tweaks) for more than 30 years, I'd just as soon stay with the old style.
But there's a few extremely troubling things I see from the systemd side:
- A complete disregard for precedent. Yes, it's good to be open to rethinking how we do things, but the fact is that Unix has worked for a very, very long time. There's many reasons for this, but the "Unix philosophy" is undoubtedly one of them. systemd is by no means "Unixy". Reading a directory of symlinks and executing shell scripts is simple, and minimizes the logic built into init - which a lot of people believe is a good guiding principle for pretty much the entire OS.
- An uncompelling value proposition. I don't much care about boot time (who reboots anymore, anyway?), and with Upstart my boot times were pretty quick anyway. If I'm running a server, I don't even care about boot time at all. What I do care about is simplicity of understanding and management. Systemd has failed to convince me that it does anything I want. Iin the absence of anything particularly valuable I'd just as soon stick with existing, robust, well-understood systems. I don't have my tonsils out for fun either - it's not change aversion to stick with things that worked fine in the absence of a compelling reason to change things.
- Poor architecture. The init system should be as simple as possible. Let it start things like dbus if the system needs it, don't build them in. Discrete components that are loosely-coupled, please - tight coupling is a black mark against virtually any multi-binary software package, but especially in the boot process. Building things into the startup process just reduces the number of things you're able to remove from a system that doesn't need them. DBus is a great example of this.
- Lack of concern for the server use case, and sysadmins in particular. People have raised concerns - many legitimate, some not - about systemd approaches, and the developers and (unusually rabid) community treat those concerns with indifference bordering on contempt. Here's a hint: when a group of competent professional acting in good faith doesn't understand why something is a good idea, it's your fault for having explained it poorly. Especially for an init system - the "average" user never did care about how his system booted! (Which, by the way, is something many systemd folk seem to disagree with - they say users are clamoring for it!) But the sysadmin does care, and has to manage it - best to treat him with respect, not contempt.
- Tying perfectly-good cross platform programs to Linux. systemd is, unabashedly, a virus. Why my window manager or graphics program has to depend on init, I don't know. But as long as it does and that package is systemd, it kills cross-platform compatibility. Compatibility is what got Linux off the ground, and with the exception of systemd it's not too hard to keep it going. Don't throw this away!
- Most importantly, the community is extremely toxic. What is Linux without community? Sure, there's bickering (since when is this bad, by the way?), but at the end of the day you have one of the most powerful and important pieces of software the world has ever seen. But the systemd mess feels like a Microsoft move, and the idea that there's a "Microsoft of Linux" able to move so unilaterally is extremely troubling. People voice concerns about systemd, and if they seem recycled it's because they haven't been well refuted! But the proponents are vicious, and vocal to an extent that makes one suspect astroturfing... which is even more troubling.
And the most troubling aspect of this toxic community are the attacks on opponents. The parent's comment is not the first, nor even the tenth, attack I've seen on a systemd opponent to claim that it's just someone afraid of losing their job and trying to set up some sort of medieval guild of sysadmins: "Therefore, Linux must be nearly impossible to use except for a very small elite few and must be made as difficult, convoluted to configure and use as it possibly can be".
Seriously, what the fuck. What the actual fuck. I wouldn't feel the need to respond to such a stupid accusation except that I've seen it dozens of times so far. I, and everybody else, learned new things when we moved from OSS to ALSA to PulseAudio, from devfs to udev, from /etc/network/interfaces to NetworkManager (which still sucks on servers). I don't know why systemd proponents pretend that this is the only change sysadmins have had to learn, as if that's the only reason for the outcry this time. No, there was outcry all those other times (in the PulseAudio case, quite rightly), but this is by far the most severe I've seen. And do any of these proponents think to ask - why? No, they decide it must just be change aversion and claim they're all just trying to set up a guild to keep their practices secret.
For the record, I am not now, nor have ever been, a sysadmin - though in the interest of full disclosure, I do have a Linux desktop and server at home. For the most part I don't have to think about booting - just like when I used to run Windows. But now when I have to, it's much, much easier than it was on Windows, because there's no complexity - it's just some folders with symlinks to shell scripts that get run! (And I don't have to write the shell script, it's part of the package.) Whereas on Windows, if something starts up - why did it start? Was it the registry, or the startup folder in the Start menu, or a service? And for each of those, is the entry in the "user" or "system" category? This is a step back from the Linux world - but here's somebody who doesn't think so is saying we should instead use systemd so that Linux is "as simple as Windows". What. The. Fuck.
All of you reading this: Think about it. I'm sure you've read attacks by each side about the other. But for the most part, I've seen systemd opponents attacking technical, philosophical, and architectural choices (which includes "we don't want to look like Windows with svchost.exe"), while systemd proponents are attacking their intended users. Which side seems more dangerous?