The Problem With X

I have always had a thing for operating systems, and in particular for their respective graphical user interfaces. GUIs haven’t really been around all that long in the grand scheme of things. In the last 20 years we’ve gone from fairly basic shells on top of operating systems that for all intents and purposes were still CLI systems, to some fairly slick and productive ideas in the area of human-computer relations.

Of course, this all began with Xerox back in the ‘70s, but most people’s initial GUI experience occurred on either a Mac or a Windows PC.

On the Mac end of things, there really wasn’t anything like it back in the days of the original Mac. Microsoft was soon playing catch up with Windows, and they’ve been stealing ideas from Apple for the last 25 years, and still haven’t come up with an interface that competes. Oh yes, Windows has become usable since Windows 2000, and the interface is actually starting to look like a modern operating system with Vista, but it’s still the Kia of GUI operating systems.

Don’t get me wrong. I am not a dyed in the wool, Apple can do no wrong, Cupertino zealot. I didn’t care for Mac OS prior to OS X, and would have preferred a Microsoft desktop given the choice. However, I will admit to a certain amount of NeXT zealotry, and since Apple has based their OS on the former NeXT Mach OS, I have nothing but praise for Mac OS.

Along the way there were other entities who contributed to the state of the modern GUI.

  • Amiga Many feel this system was so great that they hang on to it to this day. A modern version of AmigaOS exists, and even features hardware accelerated desktop rendering, but the OS itself still lacks protected memory, something the rest of us have been taking for granted for a decade, or more, depending on your choice of OS. Amiga has been in their death throes for the last 20 years, and that won’t change until they port the OS to hardware that people actually own. Don’t hold your breath.
  • Be Another failed system with very loyal adherents. There are at least a couple of attempts to keep this system alive, but I never found it very interesting. A single user, threaded system with an interface that repeats many of the missteps of the classic Mac OS.
  • NeXT You know how I feel about this. NeXT Computer made brilliant hardware and software. Consider that the first version of NeXTSTEP came out in 1989, and consider how closely it resembles, or even surpasses, a modern GUI. Often copied, and GNUStep strives to make a free implementation of the system. Why bother? Anyone who ever actually used NeXTSTEP or OPENSTEP can tell in about a second that OS X is what we’d always hoped for our system, minus the interface changes anyway.

Which brings us to Xwindows. Xwindows is the GUI that pretty much every free and non-free unix and unix-like OS uses. Xwindows is a paradox, in that in some ways it is advanced, especially considering it’s age. On the other hand, it’s an arcane system that has been around forever and had a lot of people tinkering with it and applying new features like band-aids for a very long time.

X on linux or your favorite flavor of BSD is better than ever, especially with the addition of Compiz, which adds hardware acceleration to the desktop, and to a degree that surpasses the gee-whiz eye candy theatrics that OS X and Vista implement.

Window managers haven’t changed a whole lot, in that they still do the same job they did 10 years ago. The role of the window manager is to provide the pretty for your application windows and contextual menus. The role of a window manager is NOT to be your GUI. That is the role of a desktop environment, which a window manager is not.

The X desktop environment has come a long way. KDE and Gnome are both more usable, and more polished than they were a decade ago. But are they integrated systems?

The problem with X (I put that in bold because we’re getting to the punchline here) is the exact same problem that X had 10 years ago. Xwindows does not supply the toolkit that developers use to dress their GUI applications. There are many, many ways to skin a cat in the Xwindows world, and that means there are a lot of toolkits being used by a lot of developers for a lot of different reasons. The end result? There is no consistency in the look of applications running in an Xwindows system.

It’s true that this problem isn’t as pronounced as it was a decade ago, when Gtk and QT were still in their relative infancies and Xforms, Tk, and a host of other toolkits were in heavier use. Still, even in a predominantly two toolkit world, there is one toolkit too many. The chance of either KDE or Gnome winning their decade plus old war is slim, so don’t expect all X apps to suddenly go either Gtk or QT overnight. It ain’t happenin’.

It’s horrible interface design to have such a lack of conformity to any kind of standard. A couple years ago OS X had a small version of the same problem with the confusion of cocoa and brushed metal applications. Apple finally realized the issue and made everything look like iTunes. Maybe not the right answer, but at least it was an answer.

This isn’t a fault with Gnome, or KDE, or any of the BSD or linux variants. Every system that utilizes X has this problem.

I know that in the past projects have been started to totally replace X as the windowing system for linux, and then abandoned. Is it the seemingly insurmountable task of getting everyone to port to a new system that keeps it from happening? Lack of interest?

I have Linux Mint on my laptop. On the whole, it’s a much nicer, much more integrated, much more cohesive X desktop than any I have used in the last 15 years. It’s still a mess.

Xwindows is competing with Microsoft and Apple in a lot of ways, but it will never be the desktop on your mom and dad’s computer until they do something about the mess they’ve made with the GUI.