Programming in the user interface tends towards programs that use interfaces designed for people. People and computers are different, and some programs are awkward from the user interface perspective. Example-based programming is fundamentally intractable because a set of concrete examples can imply infinitely many programs. Nevertheless, the following sections show how researchers have successfully applied these ideas to various application domains to achieve the above benefits as well as many others. For example, details of programs can be specified in meaningful context.
Programming systems can have extremely simple interfaces.
The interfaces can be made so simple that users can create programs without knowing program syntax or even looking at the static representation of a program. The most intriguing benefit is that people with no programming experience can create useful programs with little or no training. Pixel data access is naturally programming in the user interface because it reads information from the user interface. It is thus natural to ask if any of these benefits can be achieved by applying ideas from programming by demonstration. Section 4.4 shows how for certain classes of programs, programming by demonstration makes it possible to simplify the programming system's interface so that complete programs with loops and conditionals can be entered without the looking at a static representation.