You can divide every program into two parts: a user interface and the part of the program that actually does something useful, such as predicting winning lottery numbers or editing video images.
The whole purpose of a user interface is to give a program a way to
Accept commands from the user.
Accept data from the user.
Display information back to the user.
The user interface basically lets you give information to a program and receive useful information back again, as shown in Figure 10-1. Most user interfaces let people control a program, but a user interface can just as well let inanimate objects (like a motion detector) control a program. Without a user interface, you can't control a program or retrieve any useful information from the program.
Figure II.10-1. The user interface lets you control a program, give it commands, and retrieve useful information back.
To better understand user interfaces, you need to know how user interfaces evolved and how current user interface designs are meant to solve the problems of the past.
In the old days, programmers focused on writing the useful part of their program and then as an afterthought, they created a simple user interface for controlling that program. Because the programmers already know how to control their own program, they often create ...