Source Code Should be Animated

Ken Kahn

Visual Programming is the idea that source code would be better if text were replaced or augmented with pictures, diagrams, or icons. A visual program consists of formal diagrams that encode descriptions of dynamic processes. In a 1965 PBS visit to MIT Lincoln Labs, we see Bert Sutherland (now head of Sun Labs) showing off his thesis system -- a way of entering and running programs as flow charts. We hear Bert saying that programmers used to program with text but now they program directly with pictures. But Sutherland was wrong: despite 40 years of attempts to build visual programming systems, very few programs are visual. Though Visual Programming is a good fit for those few of us that are both formal and visual thinkers, visual programming didn't succeed because it doesn't go far enough.

Animated Programming is the idea that source code should not be a static abstract encoding of a process, but rather a dynamic and concrete description of a process. And the source code should be animated like a video game is animated, not an animated diagram or linked animated icons. Animated Programming is a bit like sign language or a game of Charades. And like sign language, there is no loss of expressivity; an animated programming language can be Turing-equivalent. As a matter of fact, it would be straightforward to build an animated programming language for Turing Machines since they are visual, dynamic, and concrete.

So what kind of programmer is Animated Programming good for? Those of us who are good at thinking about visual tangible things and processes. That may be a larger population than today's textual programmers, who are good at formal abstract thinking. Animated Programming may be the best means to “end user programming”. It may be the best way to introduce children to the joy and power of programming. It might be the best first language for adults that want to learn to program.

Why should professional programmers care about Animated Programming? Because it provides a different way to think about programming. And having another way to think about programming enriches your understanding. And it may in fact represent the future of programming. Maybe the next generation of programmers will be programming from within virtual reality, by manipulating simulated objects.

 Download the entire paper as an Adobe Acrobat file (PDF) - 1.8MB

home | search | purchase | manual | news | info | games | faq | support | downloads | endorsements | press | contact us