The user interface is the aggregate of means by which people (the users) interact with a particular machine, device, computer program or other complex tool (the system). The user interface provides means of:
- Input, allowing the users to control the system
Output, allowing the system to inform the users (also referred to as feedback)
To work with a system, the users need to be able to control the system and assess the state of the system. For example, when driving an automobile, the driver uses the steering wheel to control the direction of the vehicle, and the accelerator pedal, brake pedal and gearstick to control the speed of the vehicle. The driver perceives the position of the vehicle by looking through the windscreen and exact speed of the vehicle by reading the speedometer. The user interface of the automobile is the whole composed of the instruments the driver can use to accomplish the tasks of driving and maintaining the automobile.
User interfaces in computing
In computer science and human-computer interaction, the user interface (of a computer program) refers to the graphical, textual and auditory information the program presents to the user, and the control sequences (such as keystrokes with the computer keyboard, movements of the computer mouse, and selections with the touchscreen) the user employs to control the program.
Currently (as of 2005) the following types of user interface are the most common:
Command-line interfaces (CLI), where the user provides the input by typing a command string with the computer keyboard and the system provide output by printing text on the computer monitor. Used for system administration tasks etc.
Batch interfaces are non-interactive user interfaces, where the user specifies all the details of the batch job in advance to batch processing, and receives the output when all the processing is done. The computer does not prompt for further input after the processing has started.
Graphical user interfaces (GUI), which accept input via devices such as computer keyboard and mouse and provide articulated [graphical] output on the computer monitor. There are at least two different principles widely used in GUI design: object-oriented interfaces and application oriented interfaces.
Web-based user interfaces, which accept input and provide output by generating web pages which are transported via the Internet and viewed by the user using a web browser program.
The history of user interfaces can be divided into the following phases according to the dominant type of user interface:
- Batch interface, 1945-1968
- Command-line user interface, 1969-1983
- Graphical user interface, 1984 to present
Ncurses for semi-graphical user interfaces.
Chapter 2. History: A Brief History of User Interfaces in "The Art of Unix Usability" by Eric Steven Raymond & Rob W. Landley, 2004.