God, I've just recently have to downgrade to Gnome 3.24, because the latest 3.26 version kept crashing with the segfault error few times a day.
Closely related to desktop environments are the two major UI toolkits. Why does Kate have a different file picker than Gimp? Why does LibreOffice give me yet another file picker? On MacOS and Windows, the file picker is a solved problem.
Init systems, until fairly recently when most distributions consolidated around systemd, were in a similar state.
The current Wayland vs X situation is another example - some distributions prefer Wayland and its quirks, whereas others use X and its quirks. In this case, it seems pretty clear that Wayland is the winner and we're just waiting for everything else to catch up.
Because these file pickers are implemented by two different GUI toolkits that have a different idea of how file picking should be done. This isn't anything new, Xaw programs used their own (handmade) file dialogs, Motif had its own, Java/Awt had its own, Java/Swing had its own, etc. Unless you want to force everyone use a single toolkit (which is unrealistic for several reasons) you cannot get the same behavior everywhere.
Note that this isn't specific to Linux, in Windows and probably macOS you get the same unless you stick to applications using only the native APIs and avoid any cross platform application that use Gtk, Qt, Swing or any other toolkit that cannot tie itself to a single native widget library (and TBH even with some applications that do tie themselves to Win32, they sometimes end up implementing their own file pickers anyway).
And of course file pickers tend to be the most shared of GUI elements, when it comes to the actual UIs themselves even in Windows you get a ton of different toolkits, styles, behavior, etc that totally ignore the native look and feel (assuming there is one since Win32, WinForms, WPF and UWP all behave from slightly to totally different from each other, depending which ones you compare).
> In this case, it seems pretty clear that Wayland is the winner and we're just waiting for everything else to catch up.
Wayland is very restrictive for many uses and actually lacks several useful features compared to X11 - some it pushes towards the applications in the stack (so instead of a single solution that is shared among -say- 1000 clients you get 1000 solutions), while other stuff are simply impossible (unless you are XWayland which gets special status, leading to the ironic situation that even under Wayland the X APIs provide you with more functionality :-P).
Windows, as you point out, is kind of thrashing around when it comes to what it wants its GUI to be. I don't think the situation will ever improve there as Microsoft is very reluctant to break backwards compatibility.
> Wayland is very restrictive for many uses and actually lacks several useful features compared to X11 - some it pushes towards the applications in the stack (so instead of a single solution that is shared among -say- 1000 clients you get 1000 solutions), while other stuff are simply impossible (unless you are XWayland which gets special status, leading to the ironic situation that even under Wayland the X APIs provide you with more functionality :-P).
I will admit that I haven't dug into Wayland very much, but this is my impression as well. I try it (the Wayland KDE on OpenSUSE Tumbleweed) periodically, but it seems a lot crashier than X.
For example, i cannot stand vsync anywhere with the only exception being video playback. I want my windows to follow the mouse precisely, not lag behind a few pixels, i want my games to react instantly, not lag a few milliseconds, etc. Yet GNOME, elementaryOS and even Wayland's whole design force it (well, Wayland could be implemented without vsync, but is anyone doing it?).
At the same time you have people complaining about tearing and when they force composition everywhere to fix it, they do not mind (or sometimes, even notice) the lag.
Similarly, i like how X allows composing applications and environments out of individual components (ironically this sort of application composition lends itself to the Unix idea of one app per role, but most modern toolkits ignore that feature so we ended up with almost nothing really supporting it unless you go raw Xlib or ancient toolkits like Xaw or Motif).
Others see it as anathema and the root of all evil (ok, i cannot put some more concrete negatives for this as i cannot comprehend how someone would dislike it, yet i always end up arguing with people - especially GNOME/Gtk+ people /for some reason/ - over at Reddit about it :-P).
There is no way to please everyone, so you have to allow for choices. Or deal with people constantly complaining about their lost choices, that works too i suppose :-P.