YUI Theater — Douglas Crockford: “Crockford on JavaScript — Episode IV: The Metamorphosis of Ajax” (93 min.)

By YUI TeamMarch 9th, 2010

Douglas Crockford delivers the fourth lecture in his his Crockford on JavaScript lecture series at Yahoo on March 3, 2010.

Last week, Yahoo! JavaScript architect Douglas Crockford delivered the fourth installment of his Crockford on JavaScript series:

  1. Volume One: The Early Years
  2. Chapter 2: And Then There Was JavaScript
  3. Act III: Function the Ultimate
  4. Episode IV: The Metamorphosis of Ajax
  5. Part V: The End of All Things (March 31 — RSVP)

In this session, Douglas tackles the DOM. On the one hand there was JavaScript, he says, and JavaScript is “what made the browser work.”

On the other hand, there was the Document Object Model, also known affectionately as the DOM. It is what most people hate when they say they hate JavaScript. Most of the people who say they hate JavaScript don’t know JavaScript, might have never seen JavaScript, but they’ve felt the DOM alright. If you don’t know what the difference is and you say, “JavaScript is the stupidest thing I’ve ever seen,” you’re not talking about JavaScript, you’re talking about the DOM. The DOM is the browser’s API. It is the interface. It provides JavaScript for manipulating documents.

The DOM may be imperfect, but it’s nonetheless crucial to what frontend engineers do when they write web applications. In this talk, Douglas provides an overview, situated historically, of where the DOM came from, how it achieved ascendance with Ajax, and what the future might hold. In Douglas’s inimitable fashion, this history starts with Sir John Harrington and takes us up to the present day. A few choice words for CSS are among the many applause lines for veteran developers:

I find within the community of people who use CSS great affection for it. They’re totally invested in CSS, they love it. They can’t imagine any other way of doing formatting in a document. It’s it. It’s sort of like watching an episode of Cops where the cops come in and break up the family dispute, and there’s this “CSS ain’t bad, you just don’t understand it like I do. I know it hurts me, but I make mistakes, I’m wrong.” CSS is awful, and it amazes me the way people get invested in it. It’s like once you figure it out, kind of go “oh, OK, I see how I might be able to make it work,” then you flip from hating it to loving it, and despising anybody who hasn’t gone through what you’ve gone through. It doesn’t make sense to me.

If the video embed below doesn’t show up correctly in your RSS reader of choice, be sure to click through to watch the high-resolution version of the video on YUI Theater.

Subscribing to YUI Theater:


  1. I have a fast and tested internet connection, but I have tried to watch the video online and it keeps stopping every 15 seconds or so. I have tested it with Chrome, FF and IE with the same result.

    I am now downloading it at 300 kb/s so it is definitely not a bandwith problem. Maybe it’s my Flash plugin but I installed it quite recently too.

    Anyway just so you know the video may have viewing problems for other people too.

  2. Luis, Thanks for letting me know. We do get reports of playback interruptions from time to time with the Flash video, especially from outside the USA. I’ve started including HD downloads for all YUI Theater videos, so hopefully that will ensure good playback options where the Flash player isn’t doing so. I like the Flash player’s full screen mode, and the quality is excellent when it functions properly, but 480p .mov files are even better. -Eric

  3. Is there an AJAX library that JSLints?
    I have tried to JSLint YUI and JQuery with poor results.

  4. [...] Douglas Crockford: "Crockford on JavaScript – Episode IV: The Metamorphosis of Ajax" (93 m… – The Yahoo User Interface blog share the latest instalment of Douglas Crockford’s talk series on JavaScript, with this 4th episode talking about the DOM and Css and how it leads into Ajax. [...]

  5. Kirk — To the extent that you find JSLint problems in YUI components that you’re using, you should file those as bugs on YUILibrary.com. JSLint is an integral part of our workflow, and we always aim for compliance, -Eric

  6. Am I the only one who finds the placement of that “if the video doesn’t show up for you” note hilarious? It’s just perfect for underlining the trinity of things that can go wrong on the web: JS+DOM, CSS, plugins (-:

  7. Excellent video; enjoyed watching Douglas Crockford’s talks. Many of the examples Yahoo or Google provide are still using type=”text/javascript”. View source, for instance for Split Buttons or examples Google Analytics provides.

    Moving the scripts at the end of a document is really a very useful tip. Thanks!