Graphical user interface
A graphical user interface (GUI) is a type of user interface which allows people to interact with a computer and computer-controlled devices which employ graphical icons, visual indicators or special graphical elements called "widgets", along with text, labels or text navigation to represent the information and actions available to a user. The actions are usually performed through direct manipulation of the graphical elements.
Contents |
History
Precursors to graphical user interfaces
The precursor to graphical user interfaces was invented by researchers at the Stanford Research Institute, led by Douglas Engelbart. They developed the 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 a GUI as the primary interface for the Xerox Alto computer. Most modern general-purpose GUIs are derived from this system. As a result, some people call this class of interface a PARC User Interface (PUI) (note that PUI is also an acronym for perceptual user interface).
PARC User Interface
The PARC User Interface consists of graphical widgets (often provided by widget toolkit libraries) such as windows, menus, radio buttons, check boxes and icons. The PARC User Interface employs a pointing device in addition to a keyboard. These aspects can be emphasized by using the alternative acronym WIMP, which stands for Windows, Icons, Menus and Pointing device.
Evolution of graphic user interfaces
Following PARC the first commercially successful GUI-centric computer operating models were those of the Apple Lisa but more successfully that of Macintosh System graphical environment. The graphical user interfaces familiar to most people today are Microsoft Windows, Mac OS X, and the X Window System interfaces. IBM and Microsoft used many of Apple's ideas to develop the Common User Access specifications that formed the basis of the user interface found in Microsoft Windows, IBM OS/2 Presentation Manager, and the Unix Motif toolkit and window manager. These ideas evolved to create the interface found in current versions of the Windows operating system, as well as in Mac OS X and various desktop environments for Unix-like systems. Thus most current graphical user interfaces have largely common idioms.
Graphical user interface design
Graphical user interface design is an important adjunct to application programming. Its goal is to enhance the usability of the underlying logical design of a stored program. The visible graphical interface features of an application are sometimes referred to as "chrome". They include graphical elements (widgets) that may be used to interact with the program. Common widgets are: windows, buttons, menus, and scroll bars. Larger widgets, such as windows, usually provide a frame or container for the main presentation content such as a web page, email message or drawing. Smaller ones usually act as a user-input tool.
The widgets of a well-designed system are functionally independent from and indirectly linked to program functionality, so the graphical user interface can be easily customized, allowing the user to select or design a different skin at will. See Model-view-controller for more information.
Zooming user interface
Many research groups in North America and Europe are currently working on the Zooming User Interface (ZUI) which is a logical advancement on the graphical user interface, blending some three-dimensional movement with two-dimensional or "2.5D" vector objects.
Some graphical user interfaces are designed for the rigorous requirements of vertical markets. These are known as "application specific graphical user interfaces." Examples of application specific graphical user interfaces:
- Touchscreen point of sale software used by waitstaff in busy restaurants
- Self-service checkouts used in some retail stores..
- ATMs
- Airline self-ticketing and check-in
- Information kiosks in public spaces like train stations and museums
- 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 graphical user interfaces.
Cars have graphical user interfaces in them. For example, GPS navagation, touch screen multimedia centers, and even on dashboards of the newer cars.
Graphical user interfaces compared to command line interfaces
Graphical user interfaces were introduced in reaction to the steep learning curve of command line interfaces (CLI), which require commands to be typed on the keyboard. Since the commands available in command line interfaces can be numerous, complicated operations can be completed using a short sequence of words and symbols. This allows for greater efficiency and productivity once many commands are learned, but reaching this level takes some time because the command words are not easily discoverable. WIMPs ("window, icon, menu, pointing device"), on the other hand, present the user with numerous widgets that represent and can trigger some of the system's available commands.
WIMPs extensively use modes as the meaning of all keys and clicks on specific positions on the screen are redefined all the time. CLIs use modes only in the form of a current directory.
Most modern operating systems provide both a graphical user interface and some level of a CLI, although the graphical user interfaces usually receive more attention. The graphical user interface is usually WIMP-based, although occasionally other metaphors surface, such as those used in Microsoft Bob, or (FSV).
Applications may also provide both interfaces, and when they do the graphical user interface is usually a WIMP wrapper around the command-line version. This is especially common with applications designed for Unix-like operating systems. The latter used to be implemented first because it allowed the developers to focus exclusively on their product's functionality without bothering about interface details such as designing icons and placing buttons. Designing programs this way also allows users to run the program non-interactively, such as in a shell script.
Graphical user interfaces compared to text user interfaces
Three-dimensional user interfaces
For typical computer displays, three-dimensional is a misnomer—their displays are two-dimensional. Three-dimensional images are projected on them in two dimensions. Since this technique has been in use for many years, the recent use of the term three-dimensional must be considered a declaration by equipment marketers that the speed of three dimension to two dimension projection is adequate to use in standard graphical user interfaces.
Three-dimensional graphical user interfaces are common in science fiction literature and movies, such as in Jurassic Park, which features Silicon Graphics' three-dimensional file manager, "File system navigator", an actual file manager that never got much widespread use as the user interface for a Unix computer.
In science fiction, three-dimensional user interfaces are often immersible environments like William Gibson's Cyberspace or Neal Stephenson's Metaverse. Three-dimensional graphics are currently mostly used in computer games, art and computer-aided design (CAD). There have been several attempts at making three-dimensional desktop environments like Sun's Project Looking Glass or SphereXP from Sphere Inc. A three-dimensional computing environment could possibly be used for collaborative work. For example, scientists could study three-dimensional models of molecules in a virtual reality environment, or engineers could work on assembling a three-dimensional model of an airplane. This is a goal of the Croquet project and Project Looking Glass by Java. [1]
The use of three-dimensional graphics has become increasingly common in mainstream operating systems, but mainly been confined to creating attractive interfaces—eye candy—rather than for functional purposes only possible using three dimensions. For example, user switching is represented by rotating a cube whose faces are each user's workspace, and window management is represented in the form of Exposé on Mac OS X, or via a Rolodex-style flipping mechanism in Windows Vista. In both cases, the operating system transforms windows on-the-fly while continuing to update the content of those windows.
Interfaces for the X Window System have also implemented advanced three-dimensional user interfaces through compositing window managers such as Beryl and Compiz using the AIGLX or XGL architectures, allowing for the usage of OpenGL to animate the user's interactions with the desktop.
Another branch in the three-dimensional desktop environment is the three-dimensional graphical user interfaces that take the desktop metaphor a step further, like the BumpTop, where a user can manipulate documents and windows as if they were "real world" documents, with realistic movement and physics. With the current pace on three-dimensional and related hardware evolution, projects such these may reach an operational level soon.
See also
- Ajax
- Apple v. Microsoft
- Ergonomics
- Human-Machine Interface
- Live User Interface
- Look and feel
- Model-view-controller
- Object-oriented user interface
- Post-WIMP
- Rich Internet applications
- Skin
- User interface engineering
- Vector-Based GUI
- WIMP (computing)
References
Franco Kipkemboi
External links
- Graphical User Interface Gallery, screenshots of various Graphical User Interfaces
- Marcin Wichary's GUIdebook, Graphical User Interface gallery: over 5500 screenshots of GUI, 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
|
About box · Accordion · Balloon help · Button · Check box · Combo box · Combutcon · Context menu · Dialog box · Disclosure widget · Drop-down list · File dialog · Grid view · Heads-up display · Icon · Infobar · Label · List box · Menu · Menu bar · Pie menu · Progress bar · Radio button · Ribbon · Scrollbar · Sidebar · Slider · Spinner · Status bar · Tab · Text box · Toolbar · Tooltip · Tree view · Widget |