When I first met computers barely out of School / 2 years National Service it was a Sinclair ZX81. I played with it for 2 or 3 days learning Basic in the process. And then I had the fortune to run into an older programmer who gave me excellent advice. Stop learning any high level language and learn to program Z80 Assembler and if I did that I would, he told me, really understand how a computer worked. After that he said, I would find any computer language easy to learn, easy to understand, easy to recognise it's strengths and weaknesses, and easy to milk every ounce of performance out it.

He was right.

I have employed many programmers from all avenues, some while still studying, some from Technical Colleges, some from Universities. All able (in varying degrees naturally) in particular languages of study. But the rarity of finding that occasional programmer who understood hardware, understood memory, understood optimisation and knew and leveraged the strengths of a few computer languages. Without exception, that programmer had learned Assembler.

As a result I think yes, there is a place for the clickey visual drag and drop abstractioned educational system for budding programmers. They may well one day progress to the dizzy heights of Microsoft Access programmers. They will never become a Nicklaus Wirth, a Dennis Ritchie, a Ken Thompson, a Brian Kernighan, a Linux Torvalds or a John Carmack. You get the drift :-)

Let them get down and dirty with the assembly-like instruction driven language right at the start, and I believe you will give them a solid foundation to build on. (PS: And the interactive mode ability promotes learning iterative experimentation - a major plus in my mind)

Quote from the original post: So... good idea, crazy idea, who cares? Any ideas/suggestions welcome... well -- apart from "oh just write a book about python" or "why don't you make a UML implementation", in which case bugger off!