Most graphics facilities mandate event-driven programming. The basic tenet of event-driven programming is that at every instant the user, instead of the program, should be in charge of the interaction with the computer. When taken too far in language design, like most dogmas, the benefits of event-driven programming are achieved at the cost of an enforced program complexity that often is not necessary. In particular, it makes the job of adding graphics or the use of a mouse in text-oriented applications more difficult than is necessary. In Icon the programmer is free to decide when and how much the event-driven programming paradigm should be used.
Programmers can write programs in the same way they always have.
Adding interface features such as mouse input to a text-oriented application represents a minor enhancement rather than a redesign of program logic. Overview of the Graphics Facilities Icon's graphics facilities provide a new data type, window, and operations on that new data type. There are several fundamental ways in which this type and its operations simplify the large number of types and functions needed for graphics programming and window management in most systems. This section presents key features of Icon's graphics facilities. Windows as terminals Type window is an extension of Icon's file data type.