Read other letters about this article
After reading David Brin's essay Why Johnny can't code, I wondered if he and his son have tried Alice 2.0, available for free from alice.org? I expect it isn't as low-level as he might want, but it does teach the "line-by-line" approach to programming he advocates, complete with variables, if statements, while loops, for loops, and so on. It also has a unique doTogether statement that (unlike an older language like BASIC) performs the statements within it in parallel.
What really sets Alice apart from other languages is its problem domain: 3D animation.
Alice provides a person with an empty 3D virtual world, and a library of about 1000 objects (ranging from castles and dragons, to sky scrapers and space shuttles, to people, ponds and plants, to ...). Alice lets one build 3D sets by dragging and positioning these objects within the 3D world.
To animate the objects in one's world, one must program them. 3D animation is thus the motivation for learning to program. To keep a lack of typing skills from preventing a person from learning to program, Alice provides a drag-and-drop coding environment that makes it nearly impossible to commit a typing error.
Alice comes with a built-in 4-part tutorial that launches the first time you run the program. My 8-year-old finished this tutorial, and was immediately able to write simple multi-line programs. From there, he is moving on to non-linear programming concepts (if statements, loops, etc) and more advanced topics. There are books available (confession: I am the author of one) from www.course.com and www.prenhall.com that can help a student learn more.
The past 3 summers, I have used Alice very successfully to teach the basic concepts of computer programming to boys and girls, ages 10 and up. Alice's 3D environment is all the motivation these students need; some wanted to skip their snack breaks to keep programming!
As a computer science educator, what I find most fascinating is that when one of my students makes a programming mistake in Alice, the mistake often results in the animated object doing something that is anatomically impossible. Because of this, the results of mistakes are often hilarious, so that instead of being embarrassed and discouraged by such mistakes, students call to their neighbors, "Look at this!" and they all laugh at an absurd animation. Alice thus changes the programming atmosphere from one in which mistakes are "errors" to one in which trial-and-error, exploration, and self-discovery are encouraged.
I recommend that Brin and interested readers give Alice a try. It is free, fun, and a great way for a child to learn about programming while expressing his or her creativity!