I didn't like (and never used) Pulseaudio either. If I wanted to play sound over a network I'd share my media directory.
Networked sound playing is just an incident of pulseaudio being a sound router. It's a nice feature, but that's not what pulseaudio was basically written for.
There are lots of situations where sound is routed to something which isn't the usual ALSA driver:
- lots of headphones/microphones now are USB. They are not another channel on the same soundcard, they are a completely different sound driver. Switching when pluging a headset is not something which is trivially done in ALSA without special support of software.
- bluetooth, which is VERY common on portable devices (but also might be usefull on dekstops) isn't even a kernel driver. Sound is handled by a deamon communicating with the bluetooth stack. It has much more in common with networked sound than with ALSA.
- recording the output of another program becomes much more trivial if there's a sound router handling the redirection, instead of needing some special support in software.
What I wouldn't do is run an unnecessary audio layer requiring application support - and that can do nothing else - in the form of a sound daemon I never wanted and didn't ask for.
Pulseaudio doesn't require any special support. It can present an ALSA target to any ALSA-enabled software. Most current software don't even have a pulseaudio plugin, they just open the default ALSA device which happens to be one pulseaudio listends to and that just works.
Software mixing you say? It's called dmix.
Why the fuck do you want to round a *sound mixer* inside your *kernel space* ?! Do you run your video decoder and webbrowser there too ?
I prefer to run unnecessary things like sound as daemons in userspace. Thank you very much.
I moved away from Windows and towards open source years ago in order to have choice.
And you're still free to disable pulseaudio and use dmix instead, if you want.
Now indeed, for an init system, it's a bit more complicated to leave complete choice to the end user. Some specialist distro like Gentoo are able to offer you to switch between their default OpenRC and whatever you want.
But the amount of work and risk of bugs in untested paths is rather high. So don't expect other distros to offer instant switch between systemd and upstart.
I will have that choice whether or not most major distributions gargle the Poettering cock.
Instead of being vulgar, maybe you should ask yourself why so many distributions are switching to systemd.
Maybe, part of the reason would be that systemd solves actual real world problems that these distributions need fixed.
Maybe that's because systemd people and Lennart Poettering actually ship code, instead of just sitting the whole day bitching and cursing on internet forums.
Maybe if you didn't spent all your energy on whinning about systemd, and actually tried to *DO* something, to *FIX* the problems, and write an actual good solution, maybe your solution would be the one picked up by distros.
Also please try to avoid making confusion between the actual piece of code that runs as PID 1 (which is indeed confusingly called "systemd") and all the other pieces of code that add the functionnality mentionned in all systemd articles (these pieces of code are all members of a project which is also called by the same name "systemd", but all pieces of code are completely different deamons like "networkd", "journald", etc.). In other words, it's not the PID 1 that get stuffed with innapropriate functionnality. It's the people who wrote the PID1 that are also writing other daemons for extra functionnality, all different parts of the same project.