Graphical user interface
From Wikipedia, the free encyclopedia.
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.
GUIs display visual elements 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).
Contents |
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.
GUI vs. CLI
GUI | CLI |
---|---|
some commands are listed at the top of the screen | the user has to voluntarily pull up a command list |
commands are located in a hierachy | CLI commands are abbreviated following a non computer language |
Quasi modeless: Mouse mode and Keyboard mode. | mode is set by current directory and the path variables |
maps lists, 2D arrays (spreadsheets), flow charts, mind maps and text files 1:1 onto the screen. Direct manipulation interface | users know how things work. "behind the scenes" |
type with one hand, use one hand for mouse | type with both hands |
undo is possible | redo is possible. see scripts. |
mouse cannot easily be used with motion diablity | keyboard is not used blindly by many peoply |
GUIs need good vision but also has sound effects | CLI can be used via a phone (audio only interface) |
utilizes all the power of powerful hardware | low hardware requirements (cpu, ram , network terminals) |
tab completion is used in texts and forms | tab completion is used also for commands |
all programs use same menu structure and shortcuts | interoperability of greater sets of commands |
dictate the user workflow with popup windows, dialogs, 'wizards', and 'assistants' | dictate the user workflow with dialogs |
users must start over at the beginning every time, as GUI scripting | scipting can thereafter be carried out with no further analysis and design effort |
relations and program flow and data flow are drawn with the help of drag and drop | scipts are written |
the windows start menu can hold link files | aliases can be defined |
repeating the same command is a sign of a missing script | repeating the same command is a sign of a missing script |
the computer dynamically orders commands after amount of use | the user dynamically orders aliases after amount of use |
in a multitasking environtment the focus is randomly jumping between different tasks (on slow maschines) | in a multitasking environtment the user switches manually between the tasks |
differen views on the same data | source and compiled data |
the clippboard has to be used to paste the working directory into the apps | maintain the concept of a working directory |
sort by clicking on header of table | sort by sort command |
print: right click and print | print command |
object linking and embedding | pipe |
icons are hardly generated by the user | alpha numeric names are easily generated by the user |
selection, right click, print | print *.* |
a programmer has to create a menue resource | a programmer has to write a parser |
used for image editing | used for network administration |
picking an object then commanding the system what to do to it | typing a command and then on what object to apply |
Outlook
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