This article describes the different sorts of user interface interactions that are used in various systems. It somewhat parallels object oriented design patterns.
A GUI designer would be wise to seek to understand these sorts of interactions.
The MacOS system provided a coherent design that used many of the patterns; other systems such as CUA, MS-DOS, Unix, Motif, Xt, Athena, Andrew, Windows 2.0, 3.1, 95, Be, NeXTStep, and others have used various other sorts of interactions with varying degrees of consistency and success.
Different applications and sets of users will result in different kinds of interactions, which commend different user interface designs.
Unfortunately for Apple, while they recognized the value of consistency, but did not so well recognize the notion that alternative interfaces are useful within relevant contexts, and thus eliminated useful interface design components that did not fit into their consistent model.
Microsoft, on the other hand, has, seemingly by accident, built applications that lack consistency, and which thus are often difficult to use because it is difficult to figure out the user interface model being used.
X Windows has been "plagued" by the fact that it can simultaneously support many different GUI systems.
The traditional Unix command line interface obviously lacks graphical elements; it is nonetheless a powerful platform for symbol and text processing, which allows knowledgeable users to overcome this lack.
The ICCCM describes how X clients are supposed to talk to one another. This is intended to allow X applications to communicate even when they use substantially different development toolsets and user interfaces.
The Inter-Client Communication Conventions Manual (ICCCM) is available from the X Consortium via FTP.
Most modern graphical user interfaces seem to borrow, whether consciously or unconsciously, from the user interface tenets pioneered by Apple for MacOS.
This essay explores alternative user interfaces that arise from violating each of the Macintosh human interface design principles. The purpose is not to argue that the principles are bad, but rather to explore alternatives.
Several (now lost) "innovations" thought up by Gnome folk:
Minbars - GNOME alternative to scroll bars
Cluehunt - GNOME UI concept for command completion
Look for the X Special issue of Software Practice and Experience and the paper entitled: Why X is not our Ideal Window System (Hania Gajewska, Mark Manasse, Joel McCormack, et. Al.), June 1991, for explanations of what was known to be wrong in the core X protocol.
This reputedly should be required reading for anyone building a toolkit or window manager, to minimize pain on all sides.
CLIM - Common Lisp Interface Manager
In October 1986, Sun Microsystems announced NeWS (Network/extensible Window System), a synthesis of the window server and page-description language technologies. NeWS makes the device-independent, powerful imaging model of the PostScript language available in a distributed window system. A key innovation is the use of the PostScript language, together with NeWS extensions, as a window system extension language, which makes possible a new level of interactive performance and flexibility. NeWS provides a platform, independent of hardware and operating systems, on which highly diverse window applications and user interfaces can be built. NeWS applications attain an unprecedented level of visual quality, and exploit a coherency of network design new to window-based applications.
An embeddable windowing system for QNX with an API similar to X/Motif.
Giving kill -9 a whole new meaning...
An object oriented, desktop system that ran atop MS Windows. Extremely document-centric...
An essay that presents the thesis that "ease of use," as expressed in most "modern" computer applications represents an ideology more than it does any actual ease of use. A critical factor is that "Ease is never free: its gain is matched by a loss in choice, security, privacy, health, or a combination thereof."
This does not mean that software to be created in such a way as to be "as difficult as possible to use;" that is a rather extreme misinterpretation of this.
The point is to:
Encourage users to understand that the notion of abstraction, while not always easy, is not forcibly wasteful;
Demystify computing, so that the abstractions aren't always hidden;
Recognize when "ease of use" is promoted as ideology rather than as an outright improvement;
Be prepared to choose other design metrics than "ease of use" when other metrics are appropriate.
A project trying to come up with common reporting formats to report the "usability" of software. Probably too bureaucratic to be useful to much of anyone other than Microsoft...
Flightdeck-UI is a project that seeks to utilize the ideas in aircraft controls and instruments design for creating general purpose user interfaces.