Comment Creating and maintaining interest is important... (Score 1) 962
So I'd recommend something simple that isn't frustrating, but also allows easy access to things kids like (graphics stuff).
I learned programming at a very young age, bouncing between BASIC on an Apple IIe and QBasic on my dad's 286. The cool thing about the different forms of BASIC were that it made graphics stuff (my interest) easy to set up and use. One command to set the screen mode, and another to set pixels, draw circles, boxes, or whatever. Page flipping stuff was a little more advanced, but supported in QBasic too, IIRC.
Of course, BASIC teaches all kinds of terrible programming practices, but if the user ends up getting frustrated or bored and giving up early, your technically superior practices and language choice won't matter.
I doubt kids have interest in the code itself so much as what you can do with it. That is to say, they'll get bored with in-depth algorithm descriptions and things that are functionally cool, but don't show an interesting end result beyond "Hey look. It sorted the list. Whee!" I know that if I'd started with that instead of just naively coding whatever I wanted to, I probably wouldn't be as far along as I am now, graduating at a university with a com sci degree.
So, in short: Dazzle them with cool graphics/sound/whatever, not cool algorithms.
I haven't had more than a glance at it, but perhaps you might consider a modern version of BASIC that's designed for that kind of thing like Blitz Basic. Again, I haven't used this, but it might be just the thing to keep interest, which I believe is the most important part.
I learned programming at a very young age, bouncing between BASIC on an Apple IIe and QBasic on my dad's 286. The cool thing about the different forms of BASIC were that it made graphics stuff (my interest) easy to set up and use. One command to set the screen mode, and another to set pixels, draw circles, boxes, or whatever. Page flipping stuff was a little more advanced, but supported in QBasic too, IIRC.
Of course, BASIC teaches all kinds of terrible programming practices, but if the user ends up getting frustrated or bored and giving up early, your technically superior practices and language choice won't matter.
I doubt kids have interest in the code itself so much as what you can do with it. That is to say, they'll get bored with in-depth algorithm descriptions and things that are functionally cool, but don't show an interesting end result beyond "Hey look. It sorted the list. Whee!" I know that if I'd started with that instead of just naively coding whatever I wanted to, I probably wouldn't be as far along as I am now, graduating at a university with a com sci degree.
So, in short: Dazzle them with cool graphics/sound/whatever, not cool algorithms.
I haven't had more than a glance at it, but perhaps you might consider a modern version of BASIC that's designed for that kind of thing like Blitz Basic. Again, I haven't used this, but it might be just the thing to keep interest, which I believe is the most important part.