Abstract
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 areanimated 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.
Links and resources
Tags