- Design patterns are a response to solving the entanglement nightmare that OOD, while not creating, made more complex.
- While the formalization of the patterns was in some ways useful, the implementation often results in over-complexity and misapplication, especially by inexperienced programmers.
- Experienced programmers were already implementing decent ways to disentangle non-OO and OO code, so really, I think very little was gained by formalizing patterns. If anything, it made things worse for experienced developers who had to go in and fix the insanity of bad pattern application by less experienced developers.
And apparently (and sad to say), there is much agreement in the community regarding points 2 & 3.