Design Patterns Failed. Why? Should We Care?
Brian Marick (via Ole Begemann):
Now, I was in Ralph Johnson’s reading group. So when they were writing this book, I was reading early drafts of this, and I was talking to Ralph Johnson. And so I can say with, I think, a certain amount of authority that they thought of this as a first step in the direction of A Pattern Language. They were trying-- This was the first step on a path that would replicate the experience of using a pattern language, and that all fell apart.
And the question is why. I think you can have several reasons, but I’m going to focus on this one, which is that design patterns started out with not enough building blocks, that were at too low of a level. So if you look at all the design patterns, they’re basically composed of two things. There’s functions, or methods, which are just functions, and polymorphism, based on inheritance. Those are the two things in your bag of tricks, and that’s what you create these design patterns from.
Now, the building blocks from Alexander’s book are much richer. There are many, many more of them. These are just a sample of the building blocks used in patterns, where each one of those appears in the title of at least two patterns. So there are lots of building blocks, and they’re interconnected in various ways.
Previously: John Vlissides, Design Patterns of 1972.