I have to admit, my answer was a little biased, BASIC was never going to do well when I answered this question
I just think it's important to show how all of the parts of a program come together, I know for a fact that DarlBASIC somewhat "shields" you from setting up anything, if the person you're trying to teach can set up his own compiler and get a basic program working, just from practice at age 12, he's going to be set for life!
A slow progression from the console to a library sounds to me like the ideal approach (of course you could write him a couple of routines for him to play around with, to get him into the spirit of things, and while he's playing around and implementing your ready-made routines, he's lerarning iteration, control structures and operators)
I'm sure that C++ would be the right option, just as long as the learning was 'supported' i.e. you are there to explain things, and you could write a few "friendly" functions that will get some results (this would allow the user to gain the higher level control that something like blitz would offer, but teaches a middle level syntax because you'll be doing it in C++)
---------------------------------------------------------------------------------------
I think I can program pretty well, it's my compiler that needs convincing!
---------------------------------------------------------------------------------------
And now a joke to lighten to mood :D
I wander what programming language anakin skywalker used to program C3-PO's AI back on tatooine? my guess is Jawa :P