Seymour Papert once described the design of the Logo programming language as taking the best ideas in computer science about programming language design and ‘child engineering’ them. Twenty-five years after Logo's birth, there has been tremendous progress in programming language research and in computer-human interfaces. Programming languages exist now that are very expressive and mathematically very elegant and yet are difficult to learn and master. We believe the time is now ripe to attempt to repeat the success of the designers of Logo by child engineering one of these modern languages. When Logo was first built, a critical aspect was taking the computational constructs of the Lisp programming language and designing a child friendly syntax for them. Lisp's ‘CAR ’ was replaced by ‘FIRST’, ‘DEFUN’ by ‘TO’, parentheses were eliminated, and so on. Today there are totally visual languages in which programs exist as pictures and not as text. We believe this is a step in the right direction, but even better than visual programs are animated programs.Animation is much better suited for dealing with the dynamics of computer programs than static icons or diagrams. While there has been substantial progress in graphical user interfaces in the last twenty-five years, we chose to look not primarily at the desktop metaphor for ideas but instead at video games. Video games are typically more direct, more concrete, and easier to learn than other software. And more fun too. We have constructed a general-purpose concurrent programming system, ToonTalk, in which the source code is animated and the programming environment is a video game. Every abstract computational aspect is mapped into a concrete metaphor. For example, a computation is a city, an active object or agent is a house, birds carry messages between houses, a method or clause is a robot trained by the user and so on. The programmer controls a ‘programmer persona’ in this video world to construct, run, debug and modify programs. We believe that ToonTalk is especially well suited for giving children the opportunity to build real programs in a manner that is easy to learn and fun to do.
Read full abstract