X is a complex beast that harks back to the mid-80s (although XFree86 is officially only 10 years old). It defines a client-server approach to displaying graphical applications on the local machine, and also over a network. X is very flexible, and has a large number of desktop environments, ranging from Spartan ones like twm to more fully-fledged GUIs like KDE and GNOME.
There is a plethora of applications for X, not to mention widget libraries and toolkits for building graphical applications, all for free.
Despite being mature and well-supported, X is what users like the least when faced with an open source OS. X can take down even the hardiest open source OS, and X applications crash … a lot.
X strains to provide all the features that Windows and Mac users take for granted these days, such as multimedia, 3D graphics (or even fast 2D graphics), and even a consistent interface across applications – some apps pop up a context-sensitive menu if you shift-click on a window; others display it with a right-click; or a left-right (middle button) click, and so forth. Sometimes I think there’s a keyboard shortcut randomiser built into X GUIs. To give you an example, any one of these keystrokes will cause some applications to exit: Alt-F4, Ctrl-W, Ctrl-Q, Q, Ctrl-C, Ctrl-Z, Esc, Esc-Q.
At long last, X offers anti-aliased fonts. This means that instead of displaying hideous and jaggy letters, the applications display hideous and fuzzy anti-aliased ones. That is, if you’ve managed to figure out how to configure the font server to use AA fonts in the first place and your applications support them. (Using TrueType fonts instead of the ones bundled with XFree86 improves on this no end, it has to be said.)
Hardware accelerated 3D is another problem area. Card vendors are wary of making their drivers open source and publishing the specifications of their products for all and sundry, because they fear that cloners will rip these off and churn out El-Cheapo variants of their accelerators whilst leaving them holding the can for the R&D work.
Some, like nVidia, provide closed-source binary drivers for Linux (but not *BSD yet), which actually give pretty decent 3D performance. However, nVidia’s drivers are not supported by any Linux distribution, as they’re not open source, and they can be tricky to install. The Linux kernel even claims that it’s been “Tainted” when you load the nVidia modules, as they’re not GPL’ed.
Don’t get me wrong: when I look at how far both XFree86 and window managers like KDE 3.x have come, I’m in awe of the developers’ efforts. At the same time, however, I wonder what could’ve been achieved had they not been hamstrung by X. (There is a very funny description of X windows from the developer’s perspective here -- click on the “x-windows” link.)
When Apple decided to go Unix with Mac OS X, it wisely chose not to use X (although the first incarnation of the Aqua GUI was so slow that you actually wondered why not). Unless you need to display applications over a network (which has to be fast, because X likes a lot of bandwidth, and secure, because X isn’t), there’s no compelling advantage to X for desktop users. Running apps over a network is much simpler in a browser or terminal window, for instance.
BeOS was on the right track with its slick, stable and fast graphical subsystem, but it disappeared up to the Great Debugger in the Sky. The BeOS Tracker and Deskbar applications were open-sourced, but development seems to have stopped (Opentracker is pop-up hell, and the Sourceforge page hasn’t been updated since December 2001).
A Kiwi company, Rocklyte Systems, has developed a very interesting XML-based graphical interface, Athene, which runs on Linux and Windows. But, it’s not open source. The DirectFB project is, however, and it seems to be in active development. Berlin also looks interesting, but it’s currently only usable for developers.
For the time being, open source users will remain in X bondage, as there are no viable alternatives. If there are, I’d like to hear about them.