Linux GUIs are, according to the Slashdot weenies, anyway, the one thing hindering adoption of desktop Linux. And I can sort of see their point.
Why do Linux GUIs suck?
It's not because of XFree86, as again some of the Slashdot weenies have said. XFree86 is a great, network transparent graphics architecture. Sure, it's not suited to games and whatnot but the Xouvert project seems to rectify some of these problems, and whatever happens, Xouvert will make the Linux desktop slightly more beautiful.
The problem with the Linux GUIs isn't because of X, or any other one software stumbling block. In actual fact, it is due to what some regard as one of Linux's trump cards-its compatibility and diversity.
How does this diversity and compatibility make Linux GUIs suck?
Linux-really X-can support a neverending stream of window managers, from minimalistic WM only things (like OpenBox and Fluxbox) to fully fledged MS Windows aping desktop environments, like KDE and GNOME. The problem is that all of these systems use radically different toolkits-that is, they all use different programming code to render what, to the user, is just a button, scrollbar or slider (known as a widget). KDE uses Trolltech's QT toolkit to draw its widgets, while GNOME uses GTK. Each of these have a veritable amount of applications, tied to that particular toolkit. For instance, for email I like to use Ximian Evolution, which was made for GNOME. To play my music, I like to use JuK, which was made for KDE. Then I might want to use BitTorrent, which uses a different GTK version to GNOME and therefore looks ever so slightly different. And then, to muddy the waters, I might want to watch CNNNN in RealPlayer-and RealPlayer uses neither QT or GTK.
"So?", you might be saying. Well, the thing is, all of these toolkits look radically different. QT and GTK look drop dead gorgeous at their best, but they still look different to each other-one might have round buttons and a blue colour scheme, the other a yellow colour scheme with square buttons. RealPlayer uses Motif, which is completely butt-ugly (if fast). And following on from all of these comes the variety of "1 app only" toolkits. The DVD and video player Xine uses its own widgets, which no other app uses (these are also butt-ugly, but less so than Motif). While a Linux veteran might consider it a niggle, to a Linux newbie it ranges from ugly to intolerable.
The newbie likes consistency. He/she likes the file menu to be in the right place, and the save button to be just so. He wants the file save dialogs to look the same whether he's using the GIMP or Kopete. The GTK file selector and the QT one look, once again, totally different and work in a completely different manner. This results in confusion. Again, the hardened Linux vet* might be OK with this, and takes it as part of life, but it's likely to piss off the newbie to the extent that they just get pissed off with the whole Linux idea and walk away.
So what needs to be done?
To get Linux on the desktop we need to, if not eliminate one of the major toolkits (I vote GTK, if only because I adore KDE), at least make them look the same or combine them into one. Red Hat did the former and created the Bluecurve theme. This was a nice idea, but in practise GTK and QT apps still looked quite different when you put them side to side, and Motif apps were eye-rapingly ugly as usual.
As I said at the start, X is not the problem, though nor is it the solution. The solution lies with accepting that we have to standardise on one toolkit at the expense of all others if the Linux community is to gain consistency through all applications and therefore users on the desktop.
*I could make a joke about taking a penguin to a hardened vet, but that sounds quite disturbing now I think of it...
: The GTKQT thing has a few rough edges. I used it for a while and I'm of the firm opinion that it's crap
. The OO.o
stuff looks cool though.