JavaScript: The Good Parts - A Reflection on a Classic
This tiny book changed how an entire generation thought about JavaScript. Including me.
14 Oct 2024

This tiny book changed how an entire generation thought about JavaScript. Including me.
Crockford's premise is bold: JavaScript is a language with beautiful parts buried under a pile of bad design decisions. His job is to separate the two. He does it in under 200 pages.
The good parts he highlights are genuinely powerful:
Functions as first-class objects. Pass them around. Return them. Compose them. This is where JavaScript's real expressiveness lives, and Crockford was one of the first to make this case clearly.
Closures. A function remembers its creation context. This enables data encapsulation, function factories, and patterns that are foundational to modern JavaScript. Crockford treats closures as the language's superpower. He's right.
Prototypal inheritance. Objects inherit from objects, not classes. Crockford argues this is actually simpler and more flexible than classical inheritance. I agree. Even with ES6 classes available, understanding prototypal inheritance makes you a better JavaScript developer.
The "what to avoid" sections are equally valuable. Global variables, the with statement, type coercion traps — Crockford draws clear lines. Use === instead of ==. Avoid globals. These rules became community standards.
Where the book shows its age: JavaScript has changed enormously since 2008. Arrow functions, destructuring, modules, async/await, TypeScript — the landscape is different. Some of Crockford's warnings are now handled by language features or tooling. His opposition to certain patterns that are now standard (like ES6 classes) hasn't aged well.
The book is also dense. It reads more like a technical paper than a guide. If you're a beginner, start with Eloquent JavaScript. Come here once you have enough experience to appreciate what Crockford is saying.
Despite its age, the core insight holds: know your language deeply. Understand what works and what doesn't. Write less code, and make it better. That principle doesn't expire.
Read this if you write JavaScript professionally. It's short, opinionated, and foundational. Pair it with modern resources to fill in the gaps.
Keep reading
- Refactoring: Improving the Design of Existing Code
- Eloquent JavaScript: A Modern Introduction to Programming by Marijn Haverbeke
- Professor Frisby's Mostly Adequate Guide to Functional Programming: A Playful Journey into FP
- React in Patterns: A Guide to Better React Development
- Hands-on Node.js: The Node.js Introduction and API Reference by Pedro Teixeira