And Speaking of JavaScript

Khan Academy has decided to make JavaScript it’s introductory language.

As I’ve said before, I think this makes a lot of sense.  JavaScript isn’t your typical language, I admit. Functions are first-class types; it’s prototypal, not object-oriented; it’s been much-maligned (and even by me).  My attitude about it has changed much in the past six years as I’ve been able to do real, interesting (and in production) things with it.

But more importantly, it reminds me of when I was 13 (thirty years ago) and our school got its first AppleII computer.  It had games (we played Oregon Trail, and Lemonade), but more importantly, built right into it at the command prompt was a BASIC interpreter. (Two of them, actually, AppleBASIC and IntegerBASIC.)  IBM PCs and their clones had GW BASIC or MS BASIC.   Commodore had it, Atari had it, I think TRS-80 had it, and my Time/Sinclair 1000 had it.  It was right there, on the chip in many cases, in the computer you were using.  There were no barriers — there were no IDEs either, but you could type

10 PRINT "Hello World"

And you were good to go.

Now of course, everyone with a modern computer — or even one not particularly modern — has a web browser, which for programming purposes is nothing but a JavaScript interpreter, sitting right there.  And if you’re running Chrome or have FireBug installed, you’ve got something I never had when I was poking around writing programs to solve quadratic equations — a full on, interactive debugger.

All those tools make working with JavaScript pretty reasonable, and the price is excellent.  There are no barriers, something we’ve missed for a while in programming education.  And I think, in the coming decades, being able to program a computer (even in limited ways) is part of computer literacy, something everyone needs to know.  So this is a great thing, and I completely get and support what Khan Academy is doing here.