Skip to content

Alan Kay’s ’97 OOPSLA Keynote

JavaScript is the new Smalltalk:

Regular readers are quite tired of me pointing to this video, Alan Kay: The Computer Revolution hasn’t happend yet. Keynote OOPSLA 1997, but I think it’s quite fundamental to understand that Alan Kay had a vision for the web, and though his understanding of the role of HTML in the world of 1996 was flawed, it seems the collective web has spent the last ten years building exactly what he described, with HTML/SVG being the display substrate and JavaScript being the code to drive that display.

(Via BitWorking.)

I admire Alan Kay for a lot of the things he did, but this video is one of the slowest, most meandering talks I’ve ever listened to. He is talking about incredibly important things that I’m genuinely interested in, but it’s really hard to plow through.

He is very obviously whip-smart and well-read. He cites academic papers and historical incidents with ease. He uses things like cystic fibrosis as metaphors. It all makes perfect sense, but the pacing and the delivery are so deadpan that my attention is wandering.

It does have some kickin’ quotes in it, though:

  • I made up the term object-oriented, and I can tell you that I did not have C++ in mind.
  • There is no idea so simple and powerfule that you can’t get zillions of people to misunderstand it.
  • At the very least, every object should have a URL.
  • It’s very easy to grow a baby six inches. They do it a couple dozen times in their life and you never have to take them down for maintenance.
  • One of the reasons why this meta stuff is going to be important… is this whole question of how do we really interop over the internet five and ten years from now?
  • Let’s not do it in Smalltalk; that’s too slow. Well let me tell you something: there’s nothing more inefficient than spending ten years on an Operating System that never works.

All told, it is a strong argument against “Worse is Better.” His point is similar to extreme programming, whereby you build a small thing (Smalltalk) that works, then use that to bootstrap the system and slingshot yourself forward. But he comes at it from a classic “MIT approach” of figuring out a good design for the bootstrap, and then using incremental development from there. That all sounds perfectly great– and indeed it seems to be what the web has ended up as (as Joe Gregorio was pointing out)– but it sure as heck didn’t work for the things Mr. Kay was trying to do it with. Why is that?