Why is everyone standardizing on Gnome when KDE is so much more stable?

#1

So, first off let me say that the sheer amount of engineering effort that goes into all the Linux desktops is just amazing, and the fact that most of it happens totally unfunded even more so.

But I’m super confused as to why all the major Linux distros (Ubuntu, now Redhat, etc.) have standardized around Gnome 3.

Between Gnome itself, and gdm which they switched to as of Gnome 3, they’re having some fairly major stability and hardware support problems.

While Gnome keeps re-inventing itself (Corba! No! Javascript! No!) KDE keeps chugging along adding value and becoming more and more mature.

Yet everyone and their uncle is piling on to Gnome.

Ultimately I think it won’t matter because with all the big commercial entities pipling funding into Gnome it will become rock solid, but the current state of affairs leaves me utterly confused.

Admittedly my objectivity is tainted after 3 months of futile flailing to get stock Ubuntu up on my laptop. Take a gander at all the bugs I filed:

#1796614 [nouveau] Ubuntu 18.10 boots to a blank screen with a blinking cursor
#1796614 [nouveau] Ubuntu 18.10 boots to a blank screen with a blinking cursor
#1796743 Ubuntu 18.10 - Alienware 17 R5 crashes on sleep
#1799180 Ubuntu 18.10 / Linux 4.19 -rc7/8/Final - System slows / stops
#1799073 Full screen key chorded zoom (Alt+Super+=) fails in 18.04.1/18.10

I know about the licensing issues with QT, but I thought the Qt company fixed those long ago. Can anyone explain what seems to be an utterly irrational decision?

#2

Probably just like with what happened with Microsoft Windows, corporate backing. There are major organizations behind Gnome (some long gone, like Sun MiMicrosystems).

KDE has not enjoyed (or suffered) the same fate in that area.

2 Likes
#3

Yes but… WHY?

Microsoft backed Windows because Windows was created at Microsoft. Gnome and KDE weren’t created by Cannonical or Redhat, they erach had to pick a horsae and they both backed Gnome.

I’m trying to understand why given that it seems to be a fractal problem awaiting a solution or an ongoing software architect’s ego trip :slight_smile:

#4

Gnome is technically a GNU project. Backed by the GNU Foundation, so I think that has a lot to do with it. I would think that it’s also momentum and history, Ubuntu used to be Gnome" based, so why would they change to KDE after Unity, it makes sense to go back to "vanilla’ Gnome.

I am a proud KDE convert once KDE neon went to 18.04.

1 Like
#5

Running Ubuntu 18.04 on a NVIDIA GPU is about the worst possible setup for judging anything. But putting that aside, here are some points from the top of my head after using KDE and GNOME for 25 years:

  • All KDE libraries are written in Qt or at least C++, not just making it hard for third-party developers to reuse them, but also making it harder for KDE developers to use third party libraries. All the GNOME libraries are written in C and easy to reuse. This is why e.g. glib, gobject and GTK are broadly used by other projects, while pretty much nothing out there relies on Qt or even KDE. So if there’s a bug or feature missing in GNOME stuff, there are much more developers around who are interested in a fix.

  • KDE has always suffered from a massive “Not Invented Here Syndrome”, but has an extremely bad track record when it comes to maintaining libraries, technologies and applications which are/were officially part of the project. Did you know KDE once had its own 3D strategy game (Boson), office suite (KOffice/Calligra), Groupware suite (Kontact), semantic search engine (Nepomuk) etc.? They always wanted to build their own solutions for everything, but most stuff was re-designed an re-implemented again and again and then finally dropped before it ever became fully functional. If you build something around KDE, you never know if it’s still going to be there tomorrow. GNOME has a much smaller scope and is much more conservative.

  • When decisions behind GNOME changed, users usually didn’t notice. There was only a single time when a new GNOME version left users behind with less functionality than before: the introduction of GNOME Shell. KDE on the other hand was completely destroyed several times. If you have started using KDE in the last two years or so, you probably won’t know anything about that. But I hope nobody ever has to live through the disaster that KDE 4.x was again. It didn’t even have a working printing dialogue until years after the 4.0 release, and when they finally had reached feature-parity with KDE 3.x again, Qt 5 came out and they destroyed everything again.

  • This might be a bit controversial: GNOME is mainly developed by people working across many open source companies like Red Hat, Suse, Canonical etc. If one goes away or joins, development continues. But KDE would probably no longer exist if a german millionaire hadn’t set up a company (Blue Systems) which pays the core KDE developers and doesn’t expect the company to make any money (no, this is neither a joke nor a conspiracy theory). KDE is basically not sustainable without this, and nobody knows how long that millionaire is in the mood to sponsor the project. Why standardize on something which might be gone tomorrow?

#6

First, thank you very much for the response. As a relative newcomer to modern Linux (I ran Linux back in the REALLY early days before DEs when boot/root floppy sets were the cat’s meow :wink:) this is useful background.

OK, so, clearly this is a true statement, but you’ll forgive me in that I find it rather frustrating, and also counterproductive to the goal of wider Linux adoption.

At least last year when I bought my laptop, there were no AMD based chipset laptops with the specs I need (I’m partially blind and NEED a 17" screen. I also wanted a nice, powerful GPU for some actual paid work I’m doing, and some other hobby stuff.)

So telling me that Gnome being a raging tire fire on my laptop is both expected and inevitable just makes me ask WHY? What set of decisions has led to this being the case? If the Linux community doesn’t want to support Nvidia owners, then why not just rescind support entirely rather than subjecting us to a super crappy experience and wasting scads of time and frustration on something that ultimately simply won’t work?

Also, there’s a bit of elitism at play here that the community should take heed of. It’s great that you can get the hardware you need with the blessed chipsets and the like, but not everybody is in your situation, and acting as if they are is, again, counterproductive.

So, wait - let me get this straight. Gnome is written in C, which makes it superior because developers hate C++? Forgive my ignorance but does that actually make any sense? Or is it simply that more FLOSS developers choose Gnome and as such are used to it and so having to use a different toolkit written in a different language is undesirable for them?

I’ve worked in both C and C++ through the years, and not having to think about malloc() and free() seemed pretty good to me, but I’m not an expert so I’ll leave the cost/value trade-offs at play there to those who know more.

Your further points about KDE re-inventing itself and leaving a floatilla of abandonware in its wake are well taken. NIH is bad. Full stop, and if the community can collaborate on fewer solutions and make them better then that’s desirable to be sure.

Anyway, thanks again for your response.

#7

Because 18.04 was the first release after Ubuntu’s switch to GNOME and this release also changed a lot of the internal NVIDIA driver stuff. I have an ultrabook with a hybrid Intel/NVIDIA GPU combination (Optimus), since 18.04 I cannot use the NVIDIA chip anymore. At all. I have to turn it off completely, regardless of desktop environment.

…that elitism is over at NVIDIA, who have refused to provide anything other than their crappy proprietary binary driver blobs for 15 years now. The community has invested countless man-years into reverse-engineering their stuff while NVIDIA is actively working against it. I’ve even contributed to the open-source nouveau driver myself.

It has nothing to do with GNOME or superiority. It’s simply a matter of practicality and usefulness.

C is pretty much the lowest common denominator of programming languages. It has a very, very simple Application Binary Interface (ABI), no fancy features and the only thing you really need is a small standard library, which is usually already part of the system (glibc) and everything else also already links against it. There’s not much you have to do to interface with C code. Pretty much every programming language out there, from Python to Java, can call into a library written in C by default. The same isn’t true for C++. Pretty much only C++ code can call into C++ code (and even that wasn’t a given for many years).

Let’s say you’re a Go programmer and need to do something which isn’t built into Go yet. You go looking around for existing implementations and see that both GNOME’s glib (written in C) and some KDE library (written in C++) have that feature. KDE might even have implemented it better, but you can’t call into C++ code from Go and therefore you choose to go with glib.

This is why glib, gobject and GTK are used by so many different third-party projects written in so many different programming languages. It’s easy.

The KDE developers could also have written many things in C or reused other people’s C libraries, because you can call into C code from C++. But they deliberately chose to write all their useful general-purpose libraries in C++. Which basically just makes most of them useless for many other people for no good reason.

#8

That’s not elitism at all. They’ve made a business decision that we don’t like.

This is a hard problem because it comes down to niche support. I realize I’m unusual in that I’m partially blind and NEED a huge 17" screen. Most people are just fine with 13 or at most 15.

So, our choices are:

A) Try to force Nvidia to do what we, a tiny minority of their customers and the buying market as a whole, want and release the source code to their drivers (the ideal solution IMO) or
B) Try to get vendors to support every niche and design laptops for every possible niche despite the fact that this makes no business sense.

I mean, I suppose one could say that the open source community could simply decide “Tough shinola, physically disabled people. Either consume mainstream products that we support or you can’t play in the Linux pool.”

But that’s not desirable either.