This is a loosely-connected collection of thoughts stemming from the recent Strange Loop conference and a book purchase.
For years now, I've known that thoughtful developers:
But I didn't truly learn the language.
It fell into the dreaded Multi-Month Void of Cognitive Decay (MMVCD).
The tipping point was this review by Witek Radomski:
This isn't a book review, but: the book is a delight. Minus the appendices, the book is 100 pages in 10 chapters. That is an object lesson for authors and publishers alike! (I would love to know if Crockford faced pressure to add pages.)
What's more, the premise is a winner: a language can contain a beautiful, subset within a complex, (at times) unappealing landscape.
Random Thought #1: Chained Dictionaries
On SE-Radio, someone once joked that Lisp is nothing more than an abstract syntax tree. Funny stuff, and not entirely fair (I believe it is a comic reduction of an earnest point by Paul Graham, though I have no link to support that). Yet there is certainly a grain of truth in it.
Random Thought #2: Inheritance is an Interface
Scott Bale gave an excellent talk at Strange Loop 2010, based on Crockford's book. During the talk, it struck me: when we learn that a language offers inheritance, it is a fallacy (and audaciously Java-centric) to assume the existence of classes. Classes are merely one implementation of inheritance.
To wit, inheritance is an interface. It is a conceptual contract.
(As an aside, Crockford uses the terms 'prototypal' and 'classical'. I think this is a poor choice. To me, 'classical' has connotations of timelessness or an ideal. It took me a long time to realize Crockford doesn't mean to imply that.)
I realize there is now a book on HTML and CSS, but I don't think I have the stomach for it. Ping me when Expense Reports: the Good Parts is available.