Hello. I have a nearly 8 year old who likes programming computers. ATM he is doing pretty well with BeebEm (bbc emulator) and a 30 yo book off the internet, which has the advantage of being nearly free. My feeling is that this will give him the foundation he needs for programming and it is very accessible. But it doesn't allow him to program a modern computer.
What's puzzling me is that I just can't find any modern equivalents to, say, the usborne books on programming. Back in the day it was a rite of passage for geeky kids to program some kind of text adventure with a dragon, a haunted house and a maze, - in fact I even seem to remember books to enable us to do it a bit more easily- but nowadays this no longer seems to be the case, I just can't find any books for him.
Both dp and I, who at different times have learnt various programming languages, feel that having learnt microcomputer basic very solidly back in the 80s (there wasn't that much else to do with computers, if you wanted to do anything with them you had to be able to program) has really helped learn the other languages.
Is your son just interested in game programming? (for computers, handheld devices [limited resource systems], or consoles [parallel processing is rather different]?) Or is he hoping to do something else with his code?
I'm not the programmer in the family, but I remember using LOGO (move the turtle icon) in elementary school back in the 80s. That's probably as simple as it gets, and below your son's abilities. I'll have to wait til DH wakes up to ask him what he'd recommend for your DS (my husband can't wait til our son shows an interest in becoming a code monkey).
It's designed for homeschoolers, too. There are 2 "KidCoder" courses, first you do Windows (basics of using visual basic), and then you do Game programming. It's aimed at 'grade 4-8' so an 8yo might need a little help with some of the lessons, but it should be doable.
Then they also have "TeenCoder", 2 more courses (once again, "windows" then "game") for older kids, that uses C++.
My son started the KidCoder last year (age 12) and is almost finished the "Game" course. Since he's older, he'll be ready to go right into the Teen course if he wants to, or if he just wants to tool around for awhile with what he's learned in Visual Basic he can do that too.
I know what you mean about programming when we were kids, though. I remember buying books through Apple, at school, with simple Basic programs for cute little games, text adventures, etc. And with what I and my middle brother were doing, my younger brother picked things right up too -- he was making simple, graphical programs on the Vic20 when he was FIVE. And I mean, calculating the grid numbers for images and everything. Of course, he was a bit of a prodigy and is now... sold his first game to a programming magazine when he was 14, and now makes the 6-figure salary doing special effects in Hollywood. But it all started with Basic on a Vic20!!!
Okay, this is what my DH has to say about it (and he's done professional game programming as well as defense contractor stuff, so he's got experience working with a large variety of languages). Stick with object-oriented languages, such as Python or Java (they both have huge libraries, tons of free articles and online information/forums devoted to them). C++ is another one, but it's harder to use (less intuitive), although it allows for hardcore 3-D games programming.
Book rec: By the Gang of Four
More useful languages (but moreso in the future) would be Cuda and/or OpenCL--they both work with the GPUs instead of CPUs, which accelerates the applications.