On the side of the desktop environments and their usage of it, the fact that I have to "dbus-launch" to change a user's settings from a shell seems pretty insane to me.
Technology-wise I'm sure other protocols are worse and all, but DBUS does not spark joy. My experience with DBUS is that it's a pain in the ass to program with, and can cause strange issues if you for example have a service that needs to be available both for early boot and late during shutdown and you're not very careful with your dependencies. Documentation is sparse, and it seems like 99% of people just use the low-level library they keep screaming you shouldn't use anyway. I used the glib one, and it put me off programming anything GNOME ever again.
I have bad news for you, every alternative is going to be the same or worse. There's no good and clean solution for early boot services. The Linux kernel expects you to handle any of those issues in userspace with a userspace daemon like dbus. If you're upset the documentation is sparse, well, welcome to open source.
Nobody is "screaming" at you to stop using libdbus. The issues with it are actually spelled out in the docs. Here's what they say:
>The low-level API documented in this manual deliberately lacks most convenience functions - those are left up to higher-level libraries based on frameworks such as GLib, Qt, Python, Mono, Java, etc. These higher-level libraries (often called "D-Bus bindings") have features such as object systems and main loops that allow a much more convenient API.
>The low-level API also contains plenty of clutter to support integration with arbitrary object systems, languages, main loops, and so forth. These features add a lot of noise to the API that you probably don't care about unless you're coding a binding.
So unless you really have your own object system, language and event loop, you shouldn't bother with using libdbus. Use literally any of the other bindings of which there are many. The glib one is only going to be good if you're already using glib's event loop and object system.
Technology-wise I'm sure other protocols are worse and all, but DBUS does not spark joy. My experience with DBUS is that it's a pain in the ass to program with, and can cause strange issues if you for example have a service that needs to be available both for early boot and late during shutdown and you're not very careful with your dependencies. Documentation is sparse, and it seems like 99% of people just use the low-level library they keep screaming you shouldn't use anyway. I used the glib one, and it put me off programming anything GNOME ever again.
I am not a fan of DBUS.