It IS excellent. It has full I18N support which is important for the rest of the world. My kids (who didn't speak English at the time) learned programming using scratch at the age of 8. They typically did animated presentations, and games like 'frogger'. I only needed to show some little things but they could figure out most of it by themselves or with the help of youtube.
+1 for scratch. It's a great way for kids to learn programming without getting bored. Show them how to make an account and share their games with the community and they'll be hooked. The same skills learned from scratch transfer over to more advanced languages.
I'm part of a project called Code Montana whose goal is to teach 1000 Montanan high schoolers how to program using CodeHS primarily. The project launched in September and we already have over 400 kids signed up.
Teachers have started using it to teach students about programming and game development.
It is similar to Scratch, but it is more powerful (and easier to actually make a game). The behaviour system has thing slike timers, if statements, math functions, variables.
So far from what we have been told by our users it is a great intro to programming concepts.
Keep in mind we never developed it for teaching programming! it was made as a fun and easy way to make and share video games!
I would (probably controversially) say there's plenty of time to learn programming later on in the teenage years. Children only start developing abstract reasoning skills around 12 years of age. Learning social reasoning skills is more important than internalizing the way a compiler works.
As someone who teaches mathematics (set theory, combinatorics, logic, algebra, etc.) to grade school children, I'd have to say you're way off base. Many first and second grade kids have impressive abstract reasoning skills, though they often lack the vocabulary to express their thoughts. If you want proof, just find an eight year old that's into a complex game (as many of them are) and ask them to discuss the strategy with you.
This combination of a diagram-rich Kindle book and free online interactive exercises provides a learning curve so gentle, it's good for both adults and 9-year-olds: http://www.ASmarterWayToLearn.com
I never would have started coding if it weren't for Processing. It's relatively easy to learn, but is also Java-based and super powerful. I still use it today!
I wonder if Raspberry PI would be a good one to get kids thinking below the hood. I am currious to hear how did Drew Houston start programming at 5 years old? I have a 2.5 years old so he's almost there!
Has he/she gotten into Lego Mindstorms yet? I've sent my 9yo to summer camp to do that for the past two years and, when his birthday comes up next year, that's probably what he will get.
It might be worth noting that this particular 9 year old is really good at math, but struggles a bit with reading. Thanks for all the suggestions so far!
Find him an old Amstrad or similar 8-bit computer. Seriously. There is no better way to learn programming than having an old 8-bit machine in front of you, a stack of magazines with listings, and a free afternoon ..