Graphical user interface
A
graphical user interface (or
GUI, often pronounced "gooey") is a method of
interacting with a computer through
direct manipulation of graphical images and
widgets in addition to text.
Precursors to GUIs
The precursor to GUIs was invented by researchers at the
Stanford Research Institute (led by
Doug Engelbart). They developed 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).
PARC User Interface (PUI)
The PUI consists of graphical widgets (often provided by
widget toolkit libraries) such as
windows,
menus,
radio buttons,
check boxes and
icons. PUIs employ a
pointing device in addition to a keyboard. These aspects of PUIs can be emphasized by using the alternative acronym
WIMP, which stands for Windows, Icons, Menus and
Pointing device.
Evolution of Graphic User Interface
The GUI familiar to most of us today is either the Macintosh or the Windows operating systems. Their applications originated at the
Xerox Palo Alto Research Laboratory in the late 1970s.
Apple used it in their first
Macintosh computers. Later,
Microsoft built on many of Apple's ideas in their first version of the
Windows operating system for
IBM-compatible
PCs.
Examples of systems that support GUIs are
Mac OS,
Linux,
Microsoft Windows,
NEXTSTEP and the
X Window System. The latter is extended with toolkits such as
Motif (
CDE),
Qt (
KDE) and
GTK+ (
GNOME).
|
An example of KDE, one of the X Window System's many graphical user interfaces available for Unix-like systems |
|
An example of the graphical user interface in Apple's Mac OS X |
|
An example of GNOME, showing the Evince document viewer and the gedit text editor |
|
An example of the graphical user interface in Windows XP |
GUIs are important parts of many operating systems, where the user uses a mouse and pointer to move an on-screen object, click on icons and objects.
GUI design is also an important part of application programming. The visible graphical interface features of an application are often referred to as
chrome. They include buttons, menu items, scroll bars, etc. which often frame the main content which the application presents, such as a web page,email message or drawing. GUIs can be designed so the chrome can be easily customized, allowing the user to select or design a different
skin.
PUIs
Rare kinds of GUI include PUIs are most notably found in
computer games, and advanced GUIs based on
virtual reality are now frequently found in research.
Zooming User Interface
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½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 and 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 were introduced in reaction to the steep learning curve of
command
line
interfaces (
CLI),
text-based user interfaces requiring commands to be typed on the
keyboard. Since the command words in CLIs are usually numerous and composable, very complicated operations can be invoked using a relatively short sequence of words and symbols. This leads to high levels of efficiency once the many commands are learned, but reaching this level can take 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 GUI and some level of a CLI, although the GUIs usually receive more attention. The GUI is usually
WIMP-based, although occasionally other metaphors surface, such as those used in
Microsoft Bob,
3dwm or FSV.
Applications may also provide both interfaces, and when they do the GUI is usually a
WIMP wrapper around the CLI version. 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.
See main article: Text User Interface3D GUIs are very common in science fiction literature and movies, such as in
Jurassic Park, which features
Silicon Graphics' 3D filemanager, "File system navigator" [
1], an actual file manager that never got any widespread use, as the user interface of a Unix computer. In science fiction, 3D user interfaces are often immersive environments like William Gibson's
cyberspace or
Neal Stephenson's
metaverse. 3D graphics is currently mostly used in computer games, art and computer aided design. There have been several attempts at making 3D desktop environments like SphereXP [
2] from Sphere Inc. or Sun's
Project Looking Glass. A 3D computing environment could possibly be used for collaborative work, for example scientists may study 3D models of
molecules in a virtual reality environment or engineers may work on assembling a 3D model of an airplane. This is a goal of the
Croquet project [
3] and Project Looking Glass by Java [
4]. 3D is also slowly being introduced in mainstream operating systems like
Windows Vista and
Mac OS X, for the moment mainly in the form of
eye candy, like Apple's
Quartz Extreme, which uses
OpenGL to do fancy rendering.
*
About box*
Dialog box*
Icon*
User interface engineering*
Skin*
Fitts' law*
Anti-Mac*
Apple v. Microsoft*
Software engineering*
List of software engineering topics*
Human-Machine Interface*
Look and feel*
Ergonomics*
GUI Testing*
Inductive reasoning aptitude*
Ajax*
Rich Internet applications
*
emWin (Segger) embedded graphics package and graphical user interface
*
oZone GUI and
oZone GUI current developement for DOS, Linux and Windows
*
Graphical User Interface Gallery, screenshots of various Graphical User Interfaces
*
Marcin Wichary's GUIdebook, Graphical User Interface gallery: over 5500 screenshots of UI, application and icon history
*
ICONORAMA Publication by the artist and french teatcher Sonia Marques and theirs students (GUI and icons)*
The Real History of the GUI, a very interesting article by Mike Tuck
*
A History of the GUI, by Jeremy Reimer of
Ars Technica*
Linux is Not Windows points out the important design differences which lead to WIMP and CLI (but lacks impartiality)
*
Graphical User Interfaces in an Engineering Educational Environment (pdf) a small paper with respect to building GUIs for engineering educational purposes