codersnotes

Leaving The Nest June 15th, 2015

ZX Spectrum BASIC

When I was a kid, every home computer came with BASIC. You'd turn it on and there it would be, staring back at you - a BASIC prompt. It'd flash at you until you learnt how to answer it.

This wasn't just some optional toy you could investigate if you wanted. In order to even do anything with your computer, you had to at least know the BASIC commands to load a program off tape and run it.

Those days are gone of course, no more than a dream remembered. Today's computers come with a modern day BASIC: JavaScript.

The push for JavaScript as the universal platform worries me. Learning programming via BASIC was like learning to ride a bike. It was a set of training wheels, to prevent you from messing up whilst you got the hang of it.

As you gained experience, you'd start to feel the limitations of the language. It wasn't fast enough, it wasn't powerful enough, it wasn't expressive enough. At which point it was time for the training wheels to come off.

All 8-bit BASICs let you escape them once you'd learnt enough. You could start to learn assembly language, and outgrow the sandbox that had been made for you. One call to a special command would release your machine code free from its BASIC cradle, and the full power of the computer became yours.

Computers don't come with BASIC any more, the only language likely to be preinstalled is JavaScript. It's ubiquitous, elegant, safe, and accessible. But unlike BASIC, the training wheels never come off.

We're teaching the next generation in a way that prevents them from ever creating things we have not already created for them. You could never created Linux or WebGL in JavaScript, if it were not provided for you. You can write these things in languages like C++ or Go, but we have built no path leading there; no route from apprentice to master.

We hold in our hands the most important software platform ever made, yet we clip it's wings to stop it leaving the nest. We need a better web platform to guide the next generation - not one that keeps you in, but one that lets you out.

Addendum

Two days later(!) WebAssembly was announced. It certainly looks like a step in the right direction. Let's hope it succeeds.

Written by Richard Mitton,

software engineer and travelling wizard.

Follow me on twitter: http://twitter.com/grumpygiant