Book Review: A Pattern Language
I’d like to begin this month’s review of books you might want to have in your library by telling you a story.
Once upon a time, I shared an apartment with a City Planner. It was a neat and orderly place, with one unusual feature: he kept a copy of this book in his bathroom – little thing, red cover, about the size of a breviary or one of those Classical Library hardbound copies of Xenophon or Cicero’s orations. It was about how people designed and modified and imagined they spaces they lived in.
It was an odd little volume. You could open it at random to any place in the book. There’d be a title, a little photograph, and a description of the idea, along with a listing of other more or less abstract ideas elsewhere in the book. You could sit there and read only a piece, or start racing back and forth in the text when something caught your fancy. It didn’t take long to see why it was a perfect bathroom book.
Little ideas that you’d carry around with you – patterns you’d notice hours or weeks later, detonated remotely by the act of attention. The darned thing was like no other book I’d ever encountered – bit by bit, it changed how I thought of architecture and design – I’d like to say that it became the stuff I thought with rather than thought about. When hyperlinking came along, I was ready for it, having used the patterns in Alexander’s book to carom about in an idea space.
So, of course, I bought a copy of my own (and still have it). I foisted the thing on my friends for ages, prefacing my enthusiasms with the idea that this was some kind of idiosyncratic passion of mine I hoped was worth sharing. And then, one day, I discovered that I wasn’t the only person who’d stumbled up on it (actually, the book reportedly sells in the tens of thousands every year, and has done so since its appearance in the 1970s). From time to time, I would see it (it’s not a hard book to spot, with or without the dust jacket) here and there – on the bookshelf of a man at Bell Laboratories responsible for a good bit of the C programming language. In Carl Sagan’s office at Cornell University. I still run across it here and there. Brian Crabtree owns a copy. So does David Zicarelli (I honestly don’t remember whether I was the zealot who foisted the thing on him a squillion years ago or not. I’d be honored, but I doubt it).
It was a wonderful surprise to discover that my favorite little red book had somehow tunneled its way into the world of software – most elegantly with the arrival of the now-famous “Gang of Four’s” book “Design Patterns
Here’s what I think is a reasonable summary of the ideas behind the book, and how it relates to Christopher Alexander’s work. If you’re a Max person, I’m sure you’ll recognize these ideas pretty quickly (SFX: cough cough snippet cough cough package cough cough): a design pattern is a form of a solution to a design problem that’s re-usable. When you’ve got an organized group of those patterns that work in the particular thing you want to work on, you’ve got the beginnings of a pattern language. That language provides you with a way of discussing and sharing work with others.
(By the way – in case you’re wondering exactly how it is that a bunch of programmers heard of Christopher Alexander’s work in the first place, I stumbled on a discussion of exactly that here – by members of the Gang of Four themselves….)
The book and its ideas remain controversial in both the architectural and the coding communities. Sadly, the single most bracing bit of diss directed at Alexander won’t be easily available to you if you don’t have access to online University libraries – the full range of invective of William S. Saunders’ May 2002 piece in the Harvard Design Magazine is only tantalizingly quoted here (it’s a doozy). Critiques of the design pattern movement in software are more easily accessible – here, for example. Interestingly, Alexander himself gave an IEEE lecture in which he describes and comments on his work with specific regard to software practice. You can find a transcript of it here. It’s a fascinating read.
I hope that I’ve tried to suggest that this little book might find a place on your shelf not only for the movements it created, but for its ability to do what any seminal book does – it will rewire your brain and redirect your thinking.
P.S. If you’d like to peruse the thing without the actual pleasure of it as a book, you can peruse a PDF of it here.
P.S. There are two directions you can go from reading and loving this book: toward Christopher Alexander’s Ph.D. dissertation “Notes on the Synthesis of Form,” which remains the more general formulation of the Pattern Language, or to Alexander’s ambitious and contentious 4-volume masterwork “The Nature of Order”. It’s a sprawling and ambitious work that collects and follows on from the Pattern Language, but doesn’t really reduce easily (you might try this review as a basic overview of the big ideas. I’d suggest starting with Volume 1, and then deciding whether to continue on from there. For the Cliff’s notes version, you can find a summary of its basic ideas here).