Graphical user interface (GUI) takes advantage of the computer's graphics capabilities to make the program easier to use with pointing devices, menus and icons.
Graphical user interface
From Wikipedia, the free encyclopedia
In
computer science, a
graphical user interface or
GUI, pronounced
("gooey")
[1] is a type of
interface that allows
users to
interact with electronic devices through graphical
icons and visual indicators such as
secondary notation, as opposed to
text-based interfaces, typed command labels or text navigation. GUIs were introduced in reaction to the perceived steep
learning curve of
command-line interfaces (CLIs),
[2][3][4] which require commands to be typed on the
keyboard.
The actions in a GUI are usually performed through
direct manipulation of the graphical elements.
[5] In addition to computers, GUIs can be found in
hand-held devices such as
MP3 players, portable media players, gaming devices,
smartphones and smaller household, office and industrial equipment. The term "GUI" tends not to be applied to other low-resolution
types of interfaces with
display resolutions, such as
video games (where
HUD[6] is preferred), or not restricted to flat screens, like
volumetric displays[7]
because the term is restricted to the scope of two-dimensional display
screens able to describe generic information, in the tradition of the
computer science research at the
PARC (Palo Alto Research Center).
User interface and interaction design
The graphical user interface is presented (displayed) on the computer
screen. It is the result of processed user input and usually the primary
interface for human-machine interaction. The
touch user interfaces popular on small mobile devices are an overlay of the visual output to the visual input.
Designing the visual composition and temporal behavior of a GUI is an important part of
software application programming in the area of
human-computer interaction. Its goal is to enhance the efficiency and ease of use for the underlying logical design of a stored
program, a design discipline known as
usability. Methods of
user-centered design are used to ensure that the visual language introduced in the design is well tailored to the tasks.
The visible graphical interface features of an application are sometimes referred to as "chrome" or "GUI" (Goo-ee).
[8][9] Typically, the user interacts with information by manipulating visual
widgets
that allow for interactions appropriate to the kind of data they hold.
The widgets of a well-designed interface are selected to support the
actions necessary to achieve the goals of the user. A
model-view-controller
allows for a flexible structure in which the interface is independent
from and indirectly linked to application functionality, so the GUI can
be easily customized. This allows the user to select or design a
different
skin
at will, and eases the designer's work to change the interface as the
user needs evolve. Good user interface design relates to the user, not
the system architecture.
Large 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.
A GUI may be designed for the requirements of a
vertical market
as application-specific graphical user interfaces. Examples of
application-specific GUIs include automated teller machines (ATM),
point-Of-Sale touchscreens at restaurants,
[10] self-service checkouts
used in a retail store, airline self-ticketing and check-in,
information kiosks in a public space, like a train station or a museum,
and monitors or control screens in an embedded industrial application
which employ a
real time operating system (RTOS).
The latest cell phones and handheld game systems also employ
application specific touchscreen GUIs. Newer automobiles use GUIs in
their navigation systems and touch screen multimedia centers.
Examples
- Sample Graphical Desktop Environments
-
-
-
-
-
-
-
-
-
Components
A GUI uses a combination of technologies and devices to provide a
platform that the user can interact with, for the tasks of gathering and
producing information.
A series of elements conforming a
visual language
have evolved to represent information stored in computers. This makes
it easier for people with few computer skills to work with and use
computer software. The most common combination of such elements in GUIs
is the
WIMP ("window, icon, menu, pointing device") paradigm, especially in
personal computers.
The WIMP style of interaction uses a virtual
input device to control the position of a
pointer,
most often a mouse, and presents information organized in windows and
represented with icons. Available commands are compiled together in
menus, and actions are performed making gestures with the pointing
device. A
window manager facilitates the interactions between windows, applications, and the
windowing system. The
windowing system handles hardware devices such as pointing devices and graphics hardware, as well as the positioning of the pointer.
In
personal computers, all these elements are modeled through a
desktop metaphor, to produce a simulation called a
desktop environment in which the display represents a desktop, upon which documents and folders of documents can be placed.
Window managers and other software combine to simulate the desktop environment with varying degrees of realism.
Post-WIMP interfaces
Smaller mobile devices such as
PDAs and
smartphones
typically use the WIMP elements with different unifying metaphors, due
to constraints in space and available input devices. Applications for
which WIMP is not well suited may use newer
interaction techniques, collectively named as
post-WIMP user interfaces.
[11]
As of 2011, some touchscreen-based operating systems such as Apple's
iOS (
iPhone) and
Android
use the class of GUIs named post-WIMP. These support styles of
interaction using more than one finger in contact with a display, which
allows actions such as pinching and rotating, which are unsupported by
one pointer and mouse.
[12]
Interaction
Human interface devices, for the efficient interaction with a GUI include a
Computer keyboard, especially used in conjunction with
Keyboard shortcuts,
Pointing devices for the
Cursor (or rather
Pointer) control:
Mouse,
Pointing stick,
Touchpad,
Trackball,
Joystick, etc.,
Virtual keyboards, and
Head-up displays, translucent information devices at the eye level.
There are also actions performed by programs, that affect the GUI. For example, there are components like
inotify or
D-Bus to facilitate the communication of computer programs with each other.
History
The
Xerox Alto was the first device to use a graphical user interface.
Precursors
A precursor to GUIs 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 (NLS). The concept of hyperlinks was further refined and extended to graphics by researchers at
Xerox PARC and specifically
Alan Kay, who went beyond text-based hyperlinks and used a GUI as the primary interface for the
Xerox Alto computer, released in 1973. Most modern general-purpose GUIs are derived from this system.
Ivan Sutherland developed a pointer-based system called the
Sketchpad in 1963. It used a
light-pen to guide the creation and manipulation of objects in engineering drawings.
PARC user interface
The Xerox Star 8010 workstation introduced the first commercial GUI.
The PARC user interface consisted of graphical elements such as
windows,
menus,
radio buttons, and
check boxes. The concept of
icons was later introduced by
David Smith, who had written a thesis on the subject under the guidance of Kay.
[13][14][15] 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
Following PARC the first GUI-centric computer operating model was the
Xerox 8010 Star Information System in 1981,
[16][17] followed by the
Apple Lisa (which presented the concept of
menu bar as well as
window controls) in 1983, the
Apple Macintosh 128K in 1984, and the
Atari ST and Commodore
Amiga in 1985.
Visi On was released in 1983 for the
IBM PC compatible computers, but didn't became popular due to its high hardware demands.
[18] Nevertheless, it was a crucial influence on the contemporary development of
Microsoft Windows.
[19]
Apple, IBM and Microsoft used many of Xerox's ideas to develop products, and IBM's
Common User Access specifications 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 Microsoft Windows, as well as in various
desktop environments for
Unix-like operating systems, such as Mac OS X and
Linux. Thus most current GUIs have largely common idioms.
Popularization
GUIs were a hot topic in the early 1980s. The
Apple Lisa
was released in 1983 and various windowing systems existed for MS-DOS.
Individual applications for a number of platforms presented their own
take on the GUI.
[20] Despite the GUIs advantages, many reviewers questioned the value of the entire concept,
[21] citing hardware limitations as well as the difficulty in finding compatible software.
In 1984, Apple released a television commercial which introduced the Apple Macintosh during the telecast of
Super Bowl XVIII by
CBS,
[22] with
allusions to
George Orwell's noted novel,
Nineteen Eighty-Four.
The commercial was aimed at making people think about computers,
identifying the user-friendly interface as a personal computer which
departed from previous business-oriented systems,
[23] and becoming a signature representation of Apple products.
[24]
Accompanied by
an extensive marketing campaign,
[25] Windows 95 was a major success in the marketplace at launch and shortly became the most popular desktop operating system.
[citation needed]
In 2007, with the
iPhone[26] and later in 2010 with the introduction of the
iPad,
[27] Apple popularized the post-WIMP style of interaction for
multi-touch screens, and those devices were considered to be milestones in the development of
mobile devices.
[28][29]
The GUIs familiar to most people as of the mid-2010s are
Microsoft Windows,
Mac OS X, and the
X Window System interfaces for desktop and laptop computers, and Apple's
iOS,
Android,
Symbian,
BlackBerry OS,
Windows Phone,
Palm OS /
Web OS, and
Firefox OS for handheld ("
smartphone") devices.
Comparison to other interfaces
Command-line interfaces
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,
[2][3][4] but reaching this level takes some time because the command words may not be easily discoverable or
mnemonic.
In addition, using the command line can become slow and error-prone
when the user needs to enter very long commands comprising many
parameters and/or several different filenames at once.
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.
On the other hand, GUIs can be made quite hard by burying dialogs
deep in the system, or moving dialogs from place to place. Also, dialog
boxes are considerably harder for the user to script.
WIMPs extensively use
modes
as the meaning of all keys and clicks on specific positions on the
screen are redefined all the time. Command line interfaces use modes
only in limited forms, such as the current directory and environment
variables.
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
File System Visualizer (FSV).
GUI wrappers
Graphical user interface (GUI) wrappers circumvent the
command-line interface versions (CLI) of (typically)
Linux and
Unix-like software applications and their
text-based interfaces
or typed command labels. While command-line or text-based application
allow users to run the program non-interactively, GUIs wrappers on top
of them avoid the steep
learning curve of the command-line,
[2][3][4] which requires commands to be typed on the
keyboard. By starting a GUI wrapper,
users can intuitively
interact with polipo, start, stop, and change its working parameters, through graphical
icons and visual indicators of a
desktop environment,
for example. Applications may also provide both interfaces, and when
they do the GUI 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 in a
shell script. An example of this basic design could be the specialized
polipo command-line
web proxy server, which has some connected GUI wrapper projects, e.g. for
Windows OS (
solipo[30]),
Mac OS X (
dolipo[31]), and
Android (
polipoid[32]).
Three-dimensional user interfaces
For typical computer displays,
three-dimensional is a
misnomer—their displays are two-dimensional. Semantically, however, most
graphical user interfaces use three dimensions – in addition to height
and width, they offer a third dimension of layering or stacking screen
elements over one another. This may be represented visually on screen
through an illusionary transparent effect, which offers the advantage
that information in background windows may still be read, if not
interacted with. Or the environment may simply hide the background
information, possibly making the distinction apparent by drawing a
drop shadow effect over it.
Some environments use the methods of
3D graphics
to project virtual three dimensional user interface objects onto the
screen. These are often shown in use in sci-fi films (see below for
examples). As the processing power of computer graphics hardware
increases, this becomes less of an obstacle to a smooth user experience.
Three-dimensional graphics are currently mostly used in computer games, art and
computer-aided design (CAD). A three-dimensional computing environment could also be useful in other scenarios, like
molecular graphics and
aircraft design.
Several attempts have been made to create a multi-user three-dimensional environment, including the
Croquet Project and Sun's
Project Looking Glass.
Technologies
The use of three-dimensional graphics has become increasingly common
in mainstream operating systems, from creating attractive interfaces—
eye candy—
to 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 via a
Rolodex-style flipping mechanism in
Windows Vista (see
Windows Flip 3D). 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,
Compiz and
KWin 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 GUIs 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.
The
Zooming User Interface
(ZUI) is a related technology that promises to deliver the
representation benefits of 3D environments without their usability
drawbacks of orientation problems and hidden objects. It is a logical
advancement on the GUI, blending some
three-dimensional movement with
two-dimensional or "
2.5D" vector objects. In 2006,
Hillcrest Labs introduced the first zooming user interface for television.
[33]
In science fiction
Three-dimensional GUIs appeared in
science fiction literature and
movies before they were technically feasible or in common use. For example; the 1993 American film
Jurassic Park features
Silicon Graphics' three-dimensional file manager
File System Navigator, a real-life file manager for Unix operating systems. The film
Minority Report
has scenes of police officers using specialized 3d data systems. In
prose fiction, three-dimensional user interfaces have been displayed as
immersible environments like
William Gibson's
Cyberspace or
Neal Stephenson's
Metaverse. Many futuristic imaginings of user interfaces rely heavily on
object-oriented user interface (OOUI) style and especially object-oriented graphical user interface (OOGUI) style.
[34]
See also
References
No comments:
Post a Comment