Graphical user interface
From Freepedia
A graphical user interface (or GUI, sometimes pronounced "gooey") is a method of interacting with a computer through a metaphor of direct manipulation of graphical images and widgets in addition to text.
Contents |
GUIs and PUIs
GUIs displays visual element such as icons, windows, and other gadgets. The precursor to GUIs was invented by researchers at the Stanford Research Institute (led by Doug Engelbart) with the development and use of text-based hyperlinks manipulated with a mouse for the On-Line System. The concept of hyperlinks was further refined and extended to graphics by researchers at Xerox PARC, who went beyond text-based hyperlinks and used GUIs as the primary interface for the Xerox Alto computer. Most modern general-purpose GUIs are derived from this system. For this reason some people call this class of interface a PARC User Interface (PUI) (note that PUI is also an acronym for perceptual user interface). The PUI consists of graphical widgets (often provided by widget toolkit libraries) such as windows, menus, radio buttons, check boxes, and icons, and employs a pointing device (such as a mouse, trackball, or touchscreen) in addition to a keyboard. For this reason, many supporters of command line interface operating systems once referred to PUIs as WIMPs, which stood for Windows, Icons, Menus, Pointer. The term GUI is used to describe the user interface of most modern operating systems, although occasionally other metaphors surface, such as Microsoft Bob, 3dwm or (partially) FSV.
Examples of systems that support GUIs are Mac OS, Microsoft Windows, NEXTSTEP and the X Window System. The latter is extended with toolkits such as Motif (CDE), Qt (KDE) and GTK+ (GNOME).
Image:Windows XP GUI.JPG Image:AM MacOSX Panther.png Image:Linux gentoo fvwm screenshot.jpg
Types of GUIs
GUIs that are not PUIs are most notably found in computer games, and advanced GUIs based on virtual reality are now frequently found in research. Many research groups in North America and Europe are currently working on the Zooming User Interface or ZUI, which is a logical advancement on the GUI, blending some 3D movement with 2D or "2 and a half D" vectorial objects.
Some GUIs are designed for the rigorous requirements of vertical markets. These are known as "application specific GUIs." One example of such an application specific GUI is the now familiar touchscreen point of sale software found in restaurants worldwide and being introduced into self-service retail checkouts. First pioneered by Gene Mosher on the Atari ST computer in 1986, the application specific touchscreen GUI has spearheaded a worldwide revolution in the use of computers throughout the food & beverage industry and in general retail.
Other examples of application specific touchscreen GUIs include the most recent automatic teller machines, airline self-ticketing, information kiosks and the monitor/control screens in embedded industrial applications which employ a real time operating system (RTOS). The latest cell phones and handheld game systems also employ application specific touchscreen GUIs.
GUIs versus CLIs
In GUIs some commands are listed at the top of the screen for the user to see; in a Command Line Interface the user has to voluntarily pull up a command list. In a GUI commands are located in a hierachy, and keystrokes are accordingly. In a CLI commands are abbreviated following a non computer language. The hierachy in a GUI allows a sequence of similar commands with a low number of keystrokes. In a CLI the designer guarantees interoperability of greater sets of commands. In contrast designers of GUIs want to dictate the user workflow with popup windows, dialogs, 'wizards', and 'assistants'. Both GUI and CLI can permit programs which stay in the background and even charge extra money for data exchange to other programs. Full use of the more arcane features of a GUI or CLI system often takes considerable time. In fact most users never use the complete feature set. A caustic comment about the 1984 Macintosh interface captures this: "you can learn to use a Macintosh in 30 minutes, but after six months you will have learned nothing more about using a Macintosh."
A GUI maps lists, 2D arrays (spreadsheets), flow charts, mind maps and text files 1:1 onto the screen and allows fast navigation through them (cursor, mouse pointer) and scrolling through documents that do not fit onto the screen. CLI users see this stuff only in their offline documentation or coming from their printer. In a GUI text editor the keystrokes are associated with the display characters. The mouse is associated with what in a CLI is a escape sequences. A GUI like an Shooter game is used with one hand on the mouse and the other on keyboard. This is a problem, because it is very unconfortable to type blind with one hand. On a mac it is even worse as the mouse hand is only allowed to use one single key. With a GUI the user can navigate through his own history (do, undo, redo), while in a CLI he can reuse his history as shell sripts, while a GUI user has to write his scripts from scratch and debug them afterwards. In a CLI a command converts an input to an output file, in a GUI the input file is displayed in one view and the output file is displayed as another view, often with life update. This effectivly replaces the compile command with an eye movement.
A GUI allows a seamless integration with 2d and 3d drawings and movies, even GUI elements inside 3d drawings are possible (virtual realiy, Computer-aided design: Context menu or properties, google earth).
Users with vision or motion disabilities often have trouble navigating in a GUI, and most commercial GUIs require at least an order of magnitude more computer power (CPU speed, RAM, disk space, display resolution and response, etc.) than a CLI, making a GUI unwieldy on less expensive, smaller, or older hardware. Designing suitable interfaces for handheld devices, such as PDA applications and their smartphone cousins, has been a major challenge for user interface designers, and some of the more successful diverge considerably from desktop computer designs. However, the manufacturers of these devices see this as a worthwhile investment; very few small and smart devices use a CLI.
The nature of GUIs
A certain amount of insight into GUIs can be obtained by comparing noun-verb to verb-noun metaphors. Noun-verb interaction begins by picking an object then telling the system what to do to it. Verb-noun systems tell the system what to do, then pick the object to do it to. Most GUIs are implemented in terms of an event model, although other models exist. These alternative models for creating GUIs are generally classed as user interface management systems or UIMS.
In academic and research circles a GUI is often referred to as a Direct manipulation interface. This term was coined and adopted in the late 1980s because it was felt the term "Graphic User Interface" did not reflect the actual physical or haptic reality of manipulating a mouse or using a touch screen and that it ignored completely the coordinated use of sound effects to support the manipulation of the graphic elements in this kind of user interface. Also, academic and research institutions often work on prototypes of future user interfaces that place an equal or greater emphasis on the tactile elements of the interface. The "direct manipulation interface" term is usually not presented as an acronym.
See also
- Fitts' law
- Anti-Mac
- Apple v. Microsoft
- User interface engineering
- Software engineering
- List of software engineering topics
- Human-Machine Interface
- ergonomics
- GUI Testing
- Inductive reasoning aptitude
External links
- Marcin Wichary’s GUIdebook, Graphical User Interface gallery: over 5500 screenshots of UI, application, and icon history
- The Real History of the GUI, a very interesting article by Mike Tuck
- A History of the GUI, by Jeremy Reimer of Ars Technica



