systemd, as a service manager, is decent. Not necessarily a huge improvement for most use cases.
systemd, the feature creep that decides to pull every single possible use case into itself to manage everything in one place, with qwirks because making a “generic, do everything” piece of software is not a good idea, is not that great.
systemd, the group of tools that decided to manage everything by rewriting everything from scratch and suffering from the same issue that were fixed decades ago, just because “we can do better” while changing all well known interfaces and causing a schism with either double workload or dropping support for half the landscape from other software developer is really stupid.
If half the energy that got spent in the “systemd” ecosystem was spent in existing projects and solutions that already addressed these same issues, it’s likely we’d be in a far better place. Alas, it’s a new ecosystem, so we spend a lot of energy getting to the same point we were before. And it’s likely that when we get close to that, something new will show up and start the cycle again.
Learning how Systemd manages the network was a total mindfuck. There are so many alternatives, all of them being used differently by different tools, partially supported. networkd, Network Manager… There were other tools, they shared similar files but had them in different /etc or /usr folders. There were unexpected interactions between the tools… Oh man, it was so bad. I was very disappointed.
I was really into learning how things really worked in Linux and this was a slap to my face because my mindset was “Linux is so straightforward”. No, it is not, it is actually a mess like most systems. I know this isn’t a “Linux” issue, I’m just ranting about this specific ecosystem.