The physical, conceptual, and social dimensions of our traditional computer programming interfaces encourage specific types of workflows and thought patterns. The programming community self-selects for programmers who are amenable to these patterns, further reinforcing them.

Increasingly, people are approaching programming from unlikely backgrounds such as the arts. This new generation of alternative programmers provides an opportunity to radically change the way programming is done.

Recursive Drawing is an exploratory implementation of an alternative programming interface. Specifically, it is a graphical, directly manipulable version of the textual programming language Context Free.

Recursive Drawing supports a non-linear workflow, encouraging experimentation, improvisation, and discovery. Traditionally, programmers must engage the computer at the conceptual level of symbols, numbers, and their manipulations. In Recursive Drawing, the programmer works directly with the graphical output of her program in real time, thus engaging the programmer's spatial and kinesthetic intelligence.