Back to Main Page

Favorite Sites
Computing
Education
News
Jobs
Israel
Bussiness
W3 Resources
History
Travel
Internet
Russia
Entertainment
Books
Art
Science
Languages
Spanish
*

Design W. Kandinsky, Structure Joyeuse

Design

A very important principle of the design is The principle of immediacy. It means that the tool you are using is transparent for you. It brings you, the user, face-to-face with whatever is being manipulated and experienced. The machinery disappears, and you feel connected to the object in question.

Like your favorite pizza, a programming environment can be described as a layered yet synergistic stack of ingredients :

Debugging is often a search that starts from the observed effects of running a program and proceeds to deduce the possible causes in the underlying program code.

The separation between cause adn effect can occur in at least three dimensions : time, space, and semantics. Thus, designers should strive for three kinds of immediacy important for debugging: temporal, spatial, and semantic.

Temporal Immediacy

Human beings recognize causality without conscious effort only when the time between causally related events is kept to a minimum. In programming, delay between an effect and observing related events or data in the program puts a strain on programmers' short-term memory to hold all the relevant information in their heads while waiting for the programming environment to catch up.

In debugging, it is important to reason backward from effects to causes, so temporal immediacy backward in time is just as important as, if not more important than, temporal immediacy in the forward direction.

A debugging environment should keep a history or the computation and could be run either forward or backward. The history includes expressions, values, and the graphic output of the program. Also important is fine control over the level of detail displayed. It is not only immediacy beween temporally adjacent events that is important but also immediacy between temporally relevant events. The environment should also provide Graphic_Step_Forward and Graphic_Step_Backward commands that work in terms of events in which something is drawn on the screen, rather than in terms of expressions in the code. These commands will allow the user to step the behavior of the program rather than step the code and support temporal immediacy betweeen graphic events and their causes in the code.

Spatial Immediacy

Spatial immediacy means the physical distance between causally related events is kept to minimum. The reason is the same as for temporal immediacy : Events widely separated by space on the screen require users to devore more conscious effort to link them, forcing them to shift attention and putting a strain on their short-term memory. Many steppers show the value of the current expression in a fixed window off to the side of the window containing the program code display. This dual-window arrangement causes a "ping-pong" effect as the user's attention bounces from the code to constant area that sequentially reflects the values of different expressions adds cognitive distance as well as spatial distance by forcing the user to deal with the changing link between the value display region and the expression being displayed.