Entries Tagged 'languages' ↓

Crockford on Javascript

A couple of years ago I read a book – “Javascript: The Good Parts” – which changed my mind about a language that I’d struggled with back in the nineties. I realise now that much of my struggle then was with the DOM and horrible browser incompatibility. Nevertheless the scarring was bad enough to keep me on the server side for the next decade.

I recently found a series of videos featuring Doug Crockford expounding on Javascript and its place in history. This series provides an interesting and entertaining perspective on computers and languages beyond just what runs in the browser.

The whole lot is a bit of a marathon but you can sample some of the main themes in a couple of episodes. I especially recommend episodes 1 and 4.  Episode 6 stands well on its own as a compressed version of the whole series. Episodes 2 and 3 are very specific to Javascript the language if that’s what you’re after.

I like episode 1 because it has nothing whatsoever to do with Javascript but is an interesting tour through the history of computing, describing how we got to the languages and architectures that we work with today. This is essential context for any working programmers today. If you view only one episode, I recommend this one. The historical perspective is reduxed in Episode IV where Ajax is discussed in the context of HTML and its origins.

The important take away from these two talks is how the history of computing is anything but linear and deterministic. We got to the place we are via  a series of steps, mis-steps, loops, accidents and fashions. And the random-walk continues. Crockford says:

“…important new innovations are received with contempt & horror and are accepted very slowly – if ever.

Often it is necessary for the previous generation of technologists to “die off” before major progress is made – especially in programming languages.

A key problem is that it usually requires many years of hindsight to determine which innovations really are useful and innovative.