This is the seventh article in a series on common usability and graphical user interface related terms [part I | part II | part III | part IV | part V | part VI]. On the internet, and especially in forum discussions like we all have here on OSNews, it is almost certain that in any given discussion, someone will most likely bring up usability and GUI related terms - things like spatial memory, widgets, consistency, Fitts' Law, and more. The aim of this series is to explain these terms, learn something about their origins, and finally rate their importance in the field of usability and (graphical) user interface design. In part VII, as promised in part VI, we focus completely on CDE, the Common Desktop Environment.

All screenshots in this article were taken from GUIdebook's CDE 1.5 page. For some weird reason, I was unable to get my Ultra 5 connected to the network, and seeing I had no other means of communication between the Ultra 5 and my other machines, I could not get my own screenshots off the Ultra 5. I would like to thank GUIdebook for 'fixing' my problem.

Additionally, this article contains no 'direct' screenshots; all shots are linked to. This is done because I want people to focus on the content of the article, not the pretty pictures. Not that CDE screenshots are pretty. In fact, they make little kids cry.

I want to focus on CDE because for some weird reason, I totally fell in love with it when I bought my Sun Ultra 5 a few years ago. CDE is the standard graphical environment on Solaris 9, the last release of Sun's operating system that ran "comfortably" on my Ultra 5. In this article, I will detail CDE's origins, after which I will explain which usability-reated features make CDE so lovable - I will only detail a selection, since there are too many cool features and gimmicks in CDE to detail them all.

CDE was announced in 1993, as a joint development effort by Hewlett-Packard, IBM, Novell, and Sun. CDE was part of the Common Open Software Environment (COSE), an effort by the major UNIX vendors of the time to counter the UNIX wars which were basically holding UNIX hostage. The big UNIX guys realised that Microsoft was making strong inroads into the traditional UNIX space (workstations and data centers), and that something needed to be done to make sure that UNIX would be able to stand the major competition they were about to face.

COSE had several areas of focus, such as networking, graphics, multimedia, object technology, and many other things; they wanted to ensure interoperability between the various UNIX offerings in the world. A major part of COSE was the Common Desktop Environment, which, according to COSE's original press release, "will incorporate aspects of HP's Visual User Environment (VUE), IBM's Common User Access model and Workplace Shell, OSF's Motif toolkit and Window Manager, SunSoft's OPEN LOOK and DeskSet productivity tools and USL's UNIX SVR4.2 desktop manager components and scalable systems technologies. Specific technologies to be used by the six companies include the X Window System, Version 11, the Motif toolkit and interface and SunSoft's ToolTalk interapplication communication product with an incorporated HP Encapsulator." Another important aspect, which logically follows from the interoperability goals, was that CDE was supposed to be compatible with all the major UNIX variants of the time, such as Solaris, UnixWare, HP-UX, AIX/6000, and so on.

CDE succeeded in its goal: it became the de facto standard UNIX desktop. However, one of the problems with CDE was that it was not Free software, and thusly, was not easily accepted by the open source world; they started their own common desktop initiatives, which would become known as the two de facto standard desktop environments for Linux: KDE and GNOME. The popularity of these desktops soared, and consequently, Sun decided to replace CDE with their version of GNOME in 2001 (Solaris 10 includes both GNOME as well as CDE). HP announced the same intent, but in 2003, switched back to CDE, because GNOME had not stabalised sufficiently.

In other words, CDE is still very much alive, and used in UNIX systems all over the world. Ports to Linux are hard to find (I believe Red Hat 6.x had CDE somewhere), so if you want to get your hands on CDE, your best bet is probably going to be Solaris. Another option would be to use the early versions of Xfce: Xfce's earlier versions were based on CDE, so much even that its original goal was to emulate CDE in a Free software fashion, using the XForms toolkit. However, over the past years, Xfce has grown apart from CDE, favouring its own choices and ideas. Xfce has seen two complete rewrites since its early days (as well as a toolkit change to Gtk+), so the Xfce of today is only a very, very distant cousin of CDE.

CDE on Solaris 9

I will be testing the Common Desktop Environment as it came with Solaris 9, which would be CDE 1.5.7. A few years ago, I installed Solaris 9 on my old but trustworthy Sun Ultra 5, a machine with a 64bit UltraSPARC IIi 270mhz processor, 128MB of RAM, and an old Ati Mach64 video chipset. It is a sturdy machine, built like a rock, and heavy like one too. It has a Sun Type 5 keyboard, and sadly, that one uses a proprietary connector. The special Sun mouse is attached to the keyboard, so you are more or less forced to use the Sun keyboard - which does have some cool tricks, like a dedicated keypad for often-used functions such as copy, paste, and cut. Additionally, it sports Mac-style volume keys, and you can turn the machine on and off (or suspend it) using a special key on the keyboard. The cool thing about the machine's suspend? Well, let me just say that despite the thing being in storage for well over two years (so not plugged in!), it happily resumed from suspend as if nothing ever happened when I turned it on a few days ago.

The machine is no speed demon, thanks mostly to the lack of RAM (as well as a very crappy IDE controller). The problem is that it uses EDO RAM that needs to be installed in pairs, and this type of RAM is not easily come by, and quite expensive at that (257 EUR for a 256MB kit - in The Netherlands that is). The machine can take a maximum of 512MB of RAM, and I am sure that upping the memory would mean the world for the device's performance. This lack of memory does not affect CDE itself in any way. It is extremely fast and responsive, and window management happens without any form of noticeable lag. Any lag that you do encounter is caused by the applications themselves, not the desktop environment or window manager.

The first thing you notice when you load up a CDE session is the dock, which I already mentioned in the Usability Terms article on the dock. The CDE dock is the central pillar of a CDE session, and almost every action can be done right from the dock. It is completely configurable, and you can add or remove items from it or its drawers. The drawers open upwards, and can contain whatever link or shortcut you want. They even have a nice sliding effect, which most likely is the only flash you will ever see on a CDE desktop.

Which brings me to the usual complaint CDE receives: it is ugly. And with ugly, I mean really ugly. Especially today, where an interface needs at least flying stars, blurry transparency, or wobbling windows in order to "compete", CDE feels is extremely Spartan. There are no antialiased fonts, no minimise effects, no 3D effects, no nothing: all you get are those sliding drawers. So, if you believe your reason for existence can only be derived from the amount of bling on your computer screen, then CDE is definitely not for you, and it most likely never will be.