The fact that GNOME is the dominant DE for Linux, despite this fact you cite, really is confounding considering that the whole point of FOSS is supposed to be that it empowers the users. It almost feels like the entire existence and adoption of GNOME by many prominent distros was a conspiracy to prevent FOSS desktops from succeeding.
Of course all that was on the Gtk2/Gnome2 days and Gtk3/Gnome3 broke a lot of bridges, still the complexity of the desktop and the fact that GNOME has actual paid people working on it ended up with the project having a lot of inertia and they are the projects that do most of the work no matter how misguided that work might be.
After all, those who do the work are those who decide how that work will look like. Anyone else, regardless of them being right, wrong, having better or worse opinion on that work, is irrelevant.
If you want to take control of the Linux desktop away from GNOME you need to replace the GNOME stack - not just the desktop, but also the toolkit, the inter-application communication, sound libraries, etc - with something that is objectively better (for a definition of better that a majority agrees with it) and convince other developers to use it.
Yes, but it's not just GNOME who does such work. KDE has been around even longer than Gnome, and has a very different philosophy for their DE (one which, IMO, is much more aligned with the hacker philosophy of being able to customize things to your heart's content and having lots of features), yet most Linux distros stick with Gnome.
>If you want to take control of the Linux desktop away from GNOME you need to replace the GNOME stack - not just the desktop, but also the toolkit, the inter-application communication, sound libraries, etc - with something that is objectively better (for a definition of better that a majority agrees with it) and convince other developers to use it.
Yeah, we already have that; it's called KDE. We also have other DEs based on both Qt and Gtk: LxQt, Cinnamon, MATE, Xfce.
Basically, your post seems to imply that Gnome is the only full-featured DE available for Linux, and this simply isn't the case at all.
1. Initially Qt1's license made a lot of developers to shun it (if that was warranted or not is a matter of opinion, but that is what happened).
2. Being written in C++ makes it very hard to not break ABI and Qt broke it several times - either because of itself or because of C++ libraries.
3. C++ also makes it harder to interface with other languages, meaning that for most languages interfaces either do not exist or they do but are of inferior quality. In comparison Gtk+'s gobject was designed to be easy to interface with.
4. Even if you buy into C++, for a long time you had to wrap your build system around Qt with moc and all.
5. Qt was always controlled by a 3rd party company whose interests did not align with KDE's: Trolltech/TQTC wants to provide middleware to developers for developing desktop applications, KDE uses it to provide a platform API. These two overlap a bit, but they also are incompatible in other areas (such as API/ABI stability).
Some of these (e.g. license, moc) are not valid any more, but others (TQTC goals) are and even without them, GNOME has already a lot of inertia.
> Cinnamon, MATE, Xfce.
These desktop environments rely on technology developed primarily for GNOME by GNOME and/or RedHat (and to a lesser extent Canonical) developers, like Gtk+, Clutter, etc.
The original post was about why everyone uses GNOME if other environments are available: if there is anything that my answer implies is that if you rely on GNOME tech and/or tech made primarily with GNOME in mind (even under the disguise of a neutral tech) then GNOME will be where things will work better and first show up.
The only neutral tech that there is on desktop is X11/Xorg and of course the GNOME people want to tear that down and replace it with their own tech.