From "Why Johnny Can't Code," a fascinating article by David Brin on Salon:
For three years -- ever since my son Ben was in fifth grade -- he and I have engaged in a quixotic but determined quest: We've searched for a simple and straightforward way to get the introductory programming language BASIC to run on either my Mac or my PC.Why on Earth would we want to do that, in an era of glossy animation-rendering engines, game-design ogres and sophisticated avatar worlds? Because if you want to give young students a grounding in how computers actually work, there's still nothing better than a little experience at line-by-line programming.
Only, quietly and without fanfare, or even any comment or notice by software pundits, we have drifted into a situation where almost none of the millions of personal computers in America offers a line-programming language simple enough for kids to pick up fast. Not even the one that was a software lingua franca on nearly all machines, only a decade or so ago. And that is not only a problem for Ben and me; it is a problem for our nation and civilization.
Brin has a point. There are better languages than BASIC for just about everything, except for introducing kids to computer programming in a way that isn't so cryptic that it's frustrating.
BASIC was already approaching total obsolescence on home computers a decade ago when I was in high school, but Brin ignores the one place where BASIC is still king: graphing calculators. Both calculators I had in high school (some Casio model and, later, a TI-89) were programmable in a BASIC derivative language. That might explain why a lot of us nerds extensively programmed our calculators but didn't do much "real" computer programming until college.
I took a computer science class in high school that was supposed to teach me Java. I learned nothing and even the teacher conceded that it was a pretty terrible class and that he didn't know why it was being taught.
I did, however, program my calculator extensively. I even had a teacher that encouraged us to write programs to do the work in the class -- if we could show him how it worked and how we made it, he let us use it. I had pretty much every single function of the class organized into one program that put calls in to sub-programs that solved specific types of problems all organized under one crude user interface. I never quite got it to work all together, but the individual programs worked great.
Rambling on your blog: a new olympic sport.