systemd is becoming de facto a standard init system for Linux. But even this choice of words is treacherous, because systemd is much more than an init system. It's basically an integrated redesign of all the low-level userspace of a Linux system, with great plans to change how software is run and organized.
Which is not a bad thing per se: Unix software can definitely benefit from improvements in this area, and the s6 suite, among other software, comes from the same assessment and ultimately has the same goal. But systemd suffers from a single conception flaw that sets it apart from the other initiatives, and that has both political and technical repercussions.
The single, overarching problem with systemd is that it attempts, in every possible way, to do more instead of less.
systemd attempts to cover more ground instead of less. In other words, rather than simply being an init system, it tries to be a complete overhaul of the way a Linux system is run, and tries to force other software to hook with it in order to be supported. This goes very much against:
The reason why systemd has become so prevalent is not that it has been accepted by the community. It's that it has manpower. It is backed up by open source software companies that can provide much more manpower than developers like myself working on free software on their own time. The distribution model of systemd, made of lobbying and bullying, is much more akin to the distribution model of Microsoft Windows than the one of GNU/Linux.
Which says something.
Software that does more instead of less is, simply put, badly designed software. Trying to come up with an all-encompassing solution is always a sign of developer hubris and inexperience, and never a sign of good engineering. Ever. Remember sendmail, BIND, INN, and, definitely a better analogy, the early days of Microsoft Windows ? Yes, systemd is in exactly the same league. It's as if we had learned nothing from the mistakes of the past 20 years. Technically as well as politically, systemd is actually very close to Windows; is that the future we want for Linux machines ?
Doing more instead of less is bad, and it's especially true in the case of system software, i.e. low-level software that aims to make the machine work and that application software depends upon. The goal of an operating system is to make it possible to run applications, and system software should always partake in that goal. System software should stay the heck out of the way, and systemd is big, loud and obnoxious. Embedded devices are common, and will become even more common in the future; that is a market that systemd will have trouble breaking into, because it's a lot more complex than embedded devices need. And that, too, says something: if a software suite is too complex for an embedded device, maybe it's just too complex, period.