The depressing part about all this is that, at the end of the day, fewer and fewer things are working.

The first Linux version I used "full time" was Red Hat 7 (no no, I haven't forgotten the "EL" part in it). Getting stuff to work back then was an exercise of relentlessness. It took me about two days of fiddling with crap to make it boot and start X. After that it was more or less OK, though in Y2K terms -- there were a lot of things it couldn't do, updates were relatively infrequent and so on.

The current state is, surprisingly enough, not much better -- and it's extremely annoying, because ten years ago or so, it was! One could install Fedora Core 3, 4 or 5 and it pretty much worked out of the box.

Nowadays, my latest efforts of installing Fedora involved:

- Fixing the partition scheme (it somehow managed to mess up the EFI partition map, and I was literally booting to a black screen -- not even Grub showed up)

- Figuring out why PulseAudio randomly decides that my default audio output is HDMI (I haven't figured this out yet, and it makes it rather unpleasant to, say, watch a movie; I wrote a bash script that resets it to audio out and called it a day)

- Reverting to good ole' pm-suspend, because trying to make my system suspend from Gnome requires an extension that sometimes doesn't work (the button disappears) and doing it via systemd (systemd-sleep) crashes my system.

All of these are basically undebuggable, because those systems are veritable black boxes. There's no real way to figure out why PulseAudio switches its default output mid-song, no way to figure out what the fuck is happening with the "Suspend" button works, and logging systemd-sleep's actions seems to be broken (there's no trace of it in journald's output).

I'd love to send a bug report, but frankly I don't even know where to begin tracing the problem, and even if I did, given how they've treated these reports in the past, I doubt the PulseAudio, Gnome or systemd developers care about anything that happens on other people's systems.

On Red Hat 7, the desktop used to be a mess because there were like 7 useful toolkits in existence (Qt, GTK, Athena, Motif, Tk, wxWindows, FOX) and there was no way to unify their looks.

Ten years ago, this was no longer a problem (due to e.g. QtCurve).

Nowadays, it's a problem again. Even the QtCurve guys gave up on Gtk3. Ironically, Gtk3 rocks -- it's a great toolkit with probably the best theming engine around, but it's strangled by the toxic atmosphere around the Gnome project and people are either sticking with Gtk2 (e.g. Audacious) or switching to Qt instead.

I find myself using KDE applications because at least they don't assume everything is a tablet now (see Rhythmbox's silly slidable menus and the toolbar-thats-also-a-titlebar because hey, I know, let's save space that way instead of by not creating themes with a 48px-thick titlebar!) and they can do more than just look pretty. But they're buggy as hell (e.g. Amarok manages to misread id3 tags, Kmail corrupts its own files and so on). I found myself going back to frickin' mutt like it's 1997 again, just because every single other thing crashes (hi, Evolution!) or breaks the mailboxes (except, I guess, for Thunderbird, but we never really got along). I have an encrypted partition which I mount manually, because at one point Dolphin suddenly stopped asking me for the root password before trying to mount it. I have no idea why -- I didn't change any setting! -- I have no idea what to do in order to get it back, and it took me like two hours to understand what's happening, because all KDE said was that it couldn't mount the disk, without any indication as to why (wrong password? Corrupted partition header? Wrong phase of the moon? I had to strace Dolphin to figure it out). I moved to using WindowMaker in the meantime because Plasma periodically "forgets" its widget's settings (e.g. the number of rows and columns in the pager).

I'm running Emacs compiled with the Athena widgets. Not because I like it, but the GTK3 version has a weird bug where holding the mouse button down in the window and dragging (e.g. to select a region of text) moves the whole window instead. Basically, I can't select text with the mouse. I don't know if it's actually a bug in Emacs, but frankly, given GTK's recent history, I doubt it.

And don't even get me started on all that xdg mess, which basically results in every other application on my system thinking that I want to open JPEGs with something else (e.g. Thunderbird actually think I want to open JPEG pictures with Wine's Internet Explorer. I had to manually set it to Gwenview, despite the fact that querying xdg via the CLI also says Gwenview should be opening those things).

It doesn't work anymore. And not because of design flaws. Systemd not following the Unix philosophy or some other esoteric crap like that has nothing to do with this. OpenVMS also didn't follow the Unix philosophy and it worked better than Linux ever has. It doesn't work because:

* People worship philosophy above all else. There was an infamous bug report regarding the volume control slider in Gnome (or PulseAudio's applet? I don't remember right now), I think, that was almost tragicomic: users complained that the default step setting was too high for their speakers (they had high-power audio systems, where you have to increase the volume slowly in order to not get a heart attack or physically destroy your speakers) and asked for a feature that allowed them to set that step to be added back. Developers insisted that wasn't a bug -- it was a feature, because users might find that confusing, and besides, it worked fine on their systems. Apparently, having a high-power audio system is a bug nowadays.

* People add features, because that's nice and shiny, but no one wants to fix bugs. It's unglamorous and icky. I know. That's programming, people.

* People don't test their code. E.g. Dolphin still doesn't properly apply icon settings theme in KDE 4.14. It's extremely obvious. There's no way you can miss that.

* Not playing nice with the community is treated as irrelevant by teams that have a good corporate backing -- because, at the end of the day, developers are responsible to their employers, not the community. That's how systemd or Gnome got their reputation of being "Red Hat's". What's worse, contributions from these companies often get entirely unfiltered, because they're hiring the maintainers or large parts of the development team. They dump a pile of bad, unportable, barely readable code and the development team either doesn't have the uncommitted manpower to say no, or they can't review and improve the code because the contributing company isn't accepting patches.

At this point I'm seriously contemplating the possibility of getting a Mac just to get away from all this bullshit. I'm so frickin' tired of troubleshooting crashes everywhere and in finding refuge in applications I haven't used since 1280x1024 was high resolution. My desktop looks like it's 2001 again, all because of development teams not being able to say no to bad contributions and because of people treating their code as if it were an appendix of their egos.

/rant