It depends,of couse, on the personality and goals of your boy..also, hsi operating system matters.
(But I assume we're talking windows here.)
If he wants to learn programming thoroughly with most of the concept he might need in a future IT career,
i'd strongly recommend Ada. (Ada 2012,currently)
The advantages of Ada are:
-It's a real compiler language, which makes it much faster in execution than intepreted languages like python,basic or perl.
-It's much more readable than c++, most of the commands are in plain, understandable english.
-It's really safe and has got a no-bullshit compiler that catches allmost all possible errors. (and tells you where they are and why they are errors). It's typing and memory-management is much safer than c++.
-it supports object oriented programming but does not force you to use it like c++ does. This makes the first programming steps much more self-explanatory as you can focus on the commands instead of the structure.
-It's really safe. Ada is often the language of choice for Nuclear Plants, cruise Missiles, airplanes and all sorts of rockets and space-related gear. It gets actualized and debugged more often than much other languages because the US military and NASA itself are founding it's development.
-There's are huge free code libraries for Ada out there, including native support for lego mindstorm.
-It's the language of choice of many Universities for new CS students, so there's bunch of tutorials and training exercises everywhere.
-In Ada, there are very few possible obscure errors. If your program does not work, you can be sure it's your fault, not the fault of your compiler or operating system.
-For windows, it comes with a really good IDE, including a debugger-bound online help.
It's only downside compared to c++ is, that ada not as much widely spread in the Industry as c++, especially as its opengl-bindings are not as advanced.
On the other hand, if your boy just wants to play and make progress fast, i'd recommend a interpreter language.
Python is really nice and easy to use..it also enforces tidy and understandable code, which makes it faster and less frustrating to learn than many other programming languages.
If your boy is rather chaotic and never has problems finding anything in his room even when it's a total mess, he might be born for Perl. It's much more obscure and chaotic than python, but it enables you to write really useful programms really fast. If he's very impatient, perl might appeal more to him than most other languages. It's inherent support of regular expressions is awesome for everything that has to do more with language than mathematics, like text manipulation and simple games.
Oh, and there's also not much wrong with Java...to me, it's a much more tidy form of c++,and very widespread. As with c++, i don't like it for enforcing object orientation from the start, but if you want your boy to learn a language that's used in University and Industries without it being as ugly as c++, java is not a bad choice.
All of the above is, of course, my personal opinion.