Design by Numbers

A book and a programming language by John Maeda (of MIT).
Maeda wants to "build a basic understanding of the process behind creating a computer program". The language and the book are aimed at the visual thinker - the book is very beautifully made, with large elegant graphics and readable text.

The language (from a purely CS point of view) is a rather spare design with severe limits. Its small size make it easy to embed a running program into a Web page via an interpreter in the shape of a Java applet.
The syntax is clean (although not as clean as LISP). The language reduces the amount of things you can do - for example, you cannot PRINT text, but you can draw lines and turn on pixels; the idea is that, faced with a very small language the learner will be able to concentrate on the logic of programming.
This is similar to the logic behind using LISP (and particularly Scheme) as a teaching language; it makes syntax so easy that we can get quite rapidly to the really cool parts, like recursion, data structures and interpreters.

The really big difference here is that LISP is a complete language, and that you can write large and complex systems with it (witness GNOME and EMACS); its minimalism is in the syntax, not in the features.OTOH, Designing by Numbers (also known as DBN) is very minimalistic in its features.
Designing anything really complex (like a text editor) in DBN would probably be rather horrible.
But this is not the intent behind the language: DBN is meant as a great first language that will give you an idea of what this programming thing is all about, with as little fuss as possible.
Having gotten that concept, the learner will abandon DBN and either drop programming completely or take up another "bigger" language.

recursion is allowed. scoping, as far as I can tell, is violently local: inside a function you can see only the formal parameters of the procedure itself plus anything you might have defined inside it. Harsh, but it does keep things tidy. NO GLOBALS!

More information at http://dbn.media.mit.edu/, where you will also find a Java interpreter that will allow you to run the example program.