A few years ago (boy time flies), I wrote that I planned for my kids to start programming lessons at about age 9. I planned to use the LOGO language, which was designed to be easy to learn for children.
However, as Delta turned 9, it seemed to me that we just had so many things going on, the thought of adding another one just seemed like too much.
But - about a month ago, Mike was on the computer and found an article about how programming really should be taught it school. It lead him to this site, with a great video - which lead him to a great free programming system . (There are also some free basic lessons on this site with other programming languages.)
Well, we downloaded Scratch, (the programming system), and showed it to Delta. And, I have been amazed so far. I haven't played with this language/system personally - but Delta, Echo, and even Foxtrot have. Scratch works really well for developing the logical thinking you need to program. There isn't a lot of typing involved, you drag and drop the commands from lists of commands.
From what I've seen - Delta started off working with some of the built-in programs, making a few modifications. He then discovered how to record sound effects with the microphone, and how to make things happen based on what keys he presses.
From that, he drew a couple of space ships, could move them on the screen with the keyboard, and press a key and one would blow up! Ok, not the most sophisticated program, but it is still real programming.
This afternoon, he has been busy creating a 2-player game. It is fairly simple - you control a mouse/cursor/pen (not sure if he named it - it is a coloured rectangle on the screen...) - and it leaves a pathway behind it. Each person's mouse and pathway is a different colour. If your mouse touches the other colour - you lose. He has worked on it for a while, and has had to do some debugging as well (for a while blue couldn't lose).
Again - it isn't the flashiest game out there - but it is, in my opinion, a great start for a 9 year old. And the best part? He is doing this on his own time, because he wants to!