GUI Definition

A graphical user interface (GUI) is a human-computer interface (i.e., a way for humans to interact with computers) that uses windows, icons and menus and which can be manipulated by a mouse (and often to a limited extent by a keyboard as well).

GUIs stand in sharp contrast to command line interfaces (CLIs), which use only text and are accessed solely by a keyboard. The most familiar example of a CLI to many people is MS-DOS. Another example is Linux when it is used in console mode (i.e., the entire screen shows text only).

A window is a (usually) rectangular portion of the monitor screen that can display its contents (e.g., a program, icons, a text file or an image) seemingly independently of the rest of the display screen. A major feature is the ability for multiple windows to be open simultaneously. Each window can display a different application, or each can display different files (e.g., text, image or spreadsheet files) that have been opened or created with a single application.

An icon is a small picture or symbol in a GUI that represents a program (or command), a file, a directory or a device (such as a hard disk or floppy). Icons are used both on the desktop and within application programs. Examples include small rectangles (to represent files), file folders (to represent directories), a trash can (to indicate a place to dispose of unwanted files and directories) and buttons on web browsers (for navigating to previous pages, for reloading the current page, etc.).

Commands are issued in the GUI by using a mouse, trackball or touchpad to first move a pointer on the screen to, or on top of, the icon, menu item or window of interest in order to select that object. Then, for example, icons and windows can be moved by dragging (moving the mouse with the held down) and objects or programs can be opened by clicking on their icons.

Advantages of GUIs

A major advantage of GUIs is that they make computer operation more intuitive, and thus easier to learn and use. For example, it is much easier for a new user to move a file from one directory to another by dragging its icon with the mouse than by having to remember and type seemingly arcane commands to accomplish the same task.

Adding to this intuitiveness of operation is the fact that GUIs generally provide users with immediate, visual feedback about the effect of each action. For example, when a user deletes an icon representing a file, the icon immediately disappears, confirming that the file has been deleted (or at least sent to the trash can). This contrasts with the situation for a CLI, in which the user types a delete command (inclusive of the name of the file to be deleted) but receives no automatic feedback indicating that the file has actually been removed.

In addition, GUIs allow users to take full advantage of the powerful multitasking (the ability for multiple programs and/or multiple instances of single programs to run simultaneously) capabilities of modern operating systems by allowing such multiple programs and/or instances to be displayed simultaneously. The result is a large increase in the flexibility of computer use and a consequent rise in user productivity.

But the GUI has became much more than a mere convenience. It has also become the standard in human-computer interaction, and it has influenced the work of a generation of computer users. Moreover, it has led to the development of new types of applications and entire new industries. An example is desktop publishing, which has revolutionized (and partly wiped out) the traditional printing and typesetting industry.

Despite the great convenience of the GUI however, system administrators and other advanced users tend to prefer the CLI for many operations because it is frequently more convenient and generally more powerful1. On Unix-like operating systems, GUIs are actually just attractive, convenient coverings for command line programs (i.e., programs which operate from a CLI), and they rely on them for their operation.

One of the great attractions of Unix-like operating systems is that they have maintained their CLI capabilities while continuing to improve their GUIs, thereby allowing advanced users to harness the full power of the computer while simultaneously making it easier for beginning and intermediate users. In contrast, the newer versions of Microsoft Windows (such as 2000 and XP) have downgraded their CLIs to marginal roles.

Brief History

The origin of the GUI can be traced back to Vannevar Bush, a scientist and futurist who worked at the Massachusetts Institute of Technology (MIT) during World War II. In his now classic 1945 magazine article As We May Think, Bush proposed an information administration tool, the Memex, that would allow data to be stored on microfilm and made easily accessible, linkable with hyperlinks and programmable.

In 1963 Ivan Sutherland, a graduate student at MIT, developed a program for his Ph.D. dissertation called Sketchpad, which allowed the direct manipulation of graphic objects on a CRT screen using a light pen. His concept included the capability to zoom in and out on the display, the provision of memory for storing objects and the ability to draw precision lines and corners on the screen.

Douglas Engelbart, who had already been researching in human-computer interaction at Stanford University in the early 1950s, was greatly inspired by Bush's concepts. He unveiled the first primitive mouse in 1968 at the Fall Joint Computer Conference in San Francisco. Termed the X-Y Position Indicator, it was housed in a small wooden box with wheels, and it took the cursor with it on the display screen when it was rolled around on a horizontal surface.

Much additional progress occurred at Xerox Palo Alto Research Center (PARC), which Xerox Corporation established in 1970 in Palo Alto, California for the purpose of creating "the architecture of information" and "humanizing computers." This included developing the first usable GUI, which was incorporated into PARC's Alto computer. The Alto, which debuted in 1974, was envisioned as a smaller, more portable replacement for the mainframes that dominated computing at that time. However, it and its successor, the Xerox Star, never achieved commercial success, presumably due to their very high prices.

Steve Jobs, the co-founder of Apple Computer, was heavily inspired by the innovations at nearby PARC, and he thus decided to incorporate a GUI into his company's computers. Apple considerably extended PARC's work, including developing overlapping windows, manipulable icons, a fixed menu bar, dropdown menus and a trash can.

The Apple Macintosh, launched in 1984, was the first commercially successful use of a GUI. It was so successful, in fact, that the GUI was subsequently adopted by most other developers of operating systems and application software, and it is now used on (or at least available for) virtually all types of computers. Moreover, GUIs are employed in a wide range of other products as well, ranging from industrial controls to toys.

Microsoft announced development of its first operating system that incorporated a GUI in November 1983, and the initial version, Windows 1.0, was released in November 1985. Windows 2.0, released in December 1987, represented a major improvement over the primitive Windows 1.0 with its addition of icons and overlapping windows, but it was not until 1995 with the launching of Windows 95 that Microsoft was able to offer a relatively high quality GUI.

The Future

GUI design has made tremendous progress subsequent to the introduction of the Macintosh and Windows 95, and it is continuing to advance. This is the result of several factors, including advances in computer hardware (e.g., faster processors, more memory and higher resolution display devices), improvements in software and ever-greater demands by users and application developers.

A particularly important new application for GUIs in recent years has been browsers. In fact, browsers have come to rival the desktop metaphor (i.e., images representing files, folders and a trash can) that has characterized most general purpose GUIs to date. Other concepts are also being developed which could provide alternatives to the desktop metaphor.

One of the most interesting areas of exploration is GUIs that provide the user with the illusion of navigating through a three-dimensional space. Another area of research is increasing user control over GUI objects, such as being able to rotate and freely change the size and transparency of icons. Also being studied is the increased use of natural languages to interact with computers as a supplement or complement to GUIs.

1For example, CLI programs often offer more options than do their GUI counterparts, thereby providing greater flexibility of use. Also, multiple CLI commands can be combined using pipes to perform tasks that would be much more cumbersome to perform with GUI programs. In addition, the command line version of a program can sometimes to be used to perform a task when its GUI counterpart malfunctions or is not available.

Created October 1, 2004.
Copyright © 2004 - 2005 The Linux Information Project. All Rights Reserved.