Wow...does no one know about
Blitz3D? It's a
very easy to learn, yet fairly powerful programming language meant for creating 2D and 3D games. The 'Hello World' program simply looks like this:
CODE
Print 'Hello World!'
WaitKey
End
Notice no annoying semicolons, no loading extensions or anything beforehand, you don't have to learn how to set up a main function, etc. And the trial version of Blitz3D (last time I checked) is nearly unlimited. The only limitations is a limit on file size (it works out to about 1,500 lines of code, and you won't get to anywhere near that for a while yet) and you can't make the .exe files. However, even though you can't make the .exe files, anything you make runs just as fast right out of the program you type the code into.
Blitz3D is easy to learn, but it takes a while to master, and it's pretty powerful (relative to how easy it is to learn) once you do. Here's a couple games programmed in Blitz3D:
http://www.supergerball.com/http://www.tecno-base.com/Good luck, this seems pretty interesting. I started with BlitzBasic (the old 2D only version of Blitz3D) when I was 8, and it wasn't hard to learn at all. Not sure how far your son can get with this, but I'm sure he could at least start it.
If you need any help learning this language, try a book entitled Game Programming for Teens. You'll have to find the first edition, not the second or third, but that shouldn't be too difficult. I can't find it on Amazon, but, meh... The second version might work as well, I'm not sure, but the third focuses on BlitzMax, which is a little harder to learn.