User Interface Standards

There is a longstanding belief in the open source development community that command line interfaces (CLI) should be a primary product of development. Once a cryptic CLI has been implemented, the graphical user interface (GUI) is merely a correllary. Clearly it is not so simple. While the command line applications are widely available on open source platforms like Linux, there is a derth of usable GUI platforms.

Unlike the Windows or Macintosh counterparts, the X Server has been a piecemeal effort from the beginning. The underpinnings of X were sufficiently obfuscated from end users when it was possible to run twm without manual modification to your monitor timings. This was a significant development, and while the quality of the actual GUI was still crude it was at least possible for average technical users to run a graphical display.

The next hurdle is the dispariety between window look and feel. Each application uses a different toolkit for rendering itself. There is a default Xt look, which is quite primitive but is still prevalent on most ad-hoc X apps. Commercial development has focused around OpenLook and Motif, with Motif seeming to emerge as the dominant windowing toolkit. Meanwhile, a variety of rich widget toolkits have emerged in recent years including Qt and GTK+.

Open source projects are emerging to unify the look and feel. Essentially, this provides a translation between common toolkits. For example, a GTK+ application could run on a QT platform and will look like any other QT program. While this will be sufficient to keep a consistent user experience, it won’t provide the same level of interface ubiquity that can be found on other platforms.


Fortunately, many vendors have been cannibalizing their graphical interfaces to provide inconsistent looks. This is a trend that was popularized by skinnable applications like WinAmp and Mozilla, and has been working to the benefit of the inconsistent user interfaces found on X. It is no longer an absolute requirement that every application looks the same, users are able to navigate programs that are sufficiently similiar or that provide unique functions in an unambiguous fashion.