Comment Design Patterns (Score 1) 755
The widespread use of "Design Patterns" is useful in explaining why OO should NOT be taught to college freshmen.
I view design patterns as an alternative methodology to OO methodology. Design patterns allow the productive use of OO languages without the unproductive baggage of OO methodology.
OO languages were originally created to facilitate the pre-existing ideas of OO programming and OO design.
Then, when programmers actually had these languages, they evolved a way of using them that is radically different than what was originally intended.
Clearly, there is enough value in OO that the languages are worth using, and enough difficulties that the methodologies are not worth using.
I expect that the next generation of tools and methodologies will take what is good from OO, and forget the rest.
In the mean time, I don't see the value of explaining to college freshmen a set of tools that were meant to be used one way, but in practice should be used a different way. (Actually, I do think that is a valuable lesson. But I think most freshman level courses treat the techniques being taught as unambiguously good.)