Practicality is the key issue facing most users, as they will only use what works. So how do we define what works? Understanding the design concepts behind many of the current systems will help define exactly what makes them usable, or unusable. There are many metaphors used in representing the complex inner workings of a computer to its user and the usability of a system may be down to how well it implements their chosen metaphors. Around the topic of usability a lot of buzz-words exist, and even more opinions exist on what makes an interface work. I think software Joel Spolsky put it most concisely; “A user interface is well-designed when the program behaves exactly how the user thought it would.”
Most modern systems conform to the desktop metaphor of usability, which is mimicking an office desktop. Back in ancient times, before a PC and a place to set it on were all an office needed, files were stored in folders in cabinets. Of course in computing files are stored in folders on drives, but the comparisons run deeper. The screen is handled like a desktop, with in-use files open and placed upon it. Desktop accessories like calculators or sound recorders also have their place in the desktop view of things.
Treating programs as virtual pages (or aspects) of your desktop is not a new idea. The ‘Page paradigm’ as it’s known dates back to the sixties. Many of the concepts we still use to understand personal computers were made public in what’s known as ‘The Mother of All Demos’. In 1968 Douglas Engelbart rose to the stage and changed the way people thought about computers. Prior to this everything was done on the command line, and was strictly text only. Engelbart’s achievements aren’t merely conceptual; his demonstration introduced the mouse as an input device. As computers have become more advanced, and gained functions that don’t fit in with the metaphor, different window managers have emerged that have their own spin on things.
Windows adheres to the desktop metaphor pretty strictly, with only the familiar taskbar breaking the illusion, all in the name of organization. Using alt and tab to switch between windows conforms to the paper paradigm, shuffling the open files like paper. Unfortunately Windows hasn’t advanced the metaphor much and hasn’t evolved much over the years. Consistency is damaged by the fact that applications are designed with no clear standard. OS X on the other hand has gone through major revisions over the years, at heavy financial cost to the user. While constancy is taken care of with solid libraries the desktop metaphor is muddled by an interface that involves users in technical information. The system handles open files and programs like paper only in their respective windows, on the dock and elsewhere they are grouped by process. This can feel awkward to users who would like to have more control.
So how does all this fit into the Linux way of doing things? The range of window managers available for Linux ensures that users have control of how windows are handled, from appearance to position on screen. It also means that some of the advanced features used to extend the desktop metaphor have appeared very early on in Linux. For example the concept of virtual desktops (multiple desktops users can switch between) has existed natively in Linux for years. The feature has been implemented by third-party developers on both Windows and Mac, with Mac to see a native implementation in Leopard, but integration with the window manager has been less than perfect. Such features can hog memory if their methods don’t fit in well with what the window manager is doing. Memory usage and resource management in general can be a big motivator in choosing a window manager, as many options exist for both low spec machines and high end beasts.