"Design Patterns Aren't" is a paper/talk by M.J.Dominus of Plover Systems Co. He argues that "Patterns" as explained by the GOF and used in the computing communities are not the same as "Patterns" as described by Alexander. He further argues that while GOF-Patterns might be useful, they are not as useful or interesting as Alex-Patterns. Quoting from the postscript: : The point of the talk is this: The "design patterns" you get from the Gang-of-Four book are not the same as the idea of "design patterns" that are put forward in Alexander's books. People say they are, but they aren't the same thing. Alexander's idea is a really good one, one that programmers might find useful. But very few programmers are going to find out about it, because they think they already know what it is. But they actually know this other idea which happens to go by the same name. : So (once again) we need to take a fresh look at Christopher Alexander. You can read the slides from the talk here: * http://perl.plover.com/yak/design/ I found that they articulated something that's been worrying me for years, but have never been able adequately to explain. ''I found that it is a rant that C++ doesn't do things as well as Perl, and that is somehow a reason that the GoF patterns are not Alexandrian patterns. I also think it is a misreading of Alexander's idea in the first place, given the stuff I've read about his Design Patterns'' -- PeteHardie * Weird. having read his PostScript I ignored the code example, and things became clearer. I think this has nothing to do with C++ or Perl or any other language - I think it's to do with the objectives. I think slides 11, 12a and 12b hold the real message. ** http://perl.plover.com/yak/design/samples/slide011.html ** http://perl.plover.com/yak/design/samples/slide012a.html ** http://perl.plover.com/yak/design/samples/slide012b.html * In short, and with respect, I think I disagree with your finding. I think there is something to it. If I read it correctly examples are alexanderish patterns would be * AlternateHardAndSoftLayers * UseLibraries * Encapsulation/InformationHiding The only GoF-pattern that really is a pattern in this sense then is * Use a Facade -- GunnarZarncke ''I can't find the link anymore, but there was a page detailing some of Alexander's patterns, and they were along the lines of "use low ceilings for intimacy", and "provide private spaces", which, to me, seem quite similar in detail to the GoF patterns. Sure, many developers might just cut&paste the example code, but that does not mean the patterns have use for the developers who understand the deeper meaning.'' --PeteHardie : This could be the link to Pattern Language you are looking for: http://downlode.org/Etext/Patterns/ Oh they are related sure. But the GoF thing is more like: * "If you want private spaces build them this and that way." Whereas Alexander seems to read more like * "You should consider to add private spaces." -- .gz ''There are similarly precise instructions in some of the comments about the design of office space - notably "have windows that open". I think that the example code that goes with the GoF pattern description may be too precise, but that's not the pattern, it's a reference implementation'' --ph ---- ''I think slides 11, 12a and 12b hold the real message.'' I think slide 11 merely says "Have a standard vocabulary of terms to discuss constructions". Not a bad idea, but no more profound than the vocabulary textbooks we had in 2nd grade reading/writing classes. The profoundness lies in having a way to discuss why and when to use different patterns, and the effects they will have on the overall construct, and how they combine. That's what makes it a pattern language rather than just a list of buzzwords. There's no use discussing terms that you don't understand, and the source examples for the GoF patterns are the illustration that's worth a thousand words to programmers, so that they'll understand, recognize, and know what they're talking about when discussing the patterns. They're the 'what' is being talked about. Although they could be used as a 'how', that's not what they're for, as I read it. ---- Please link this into WardsWiki in the appropriate places. ---- See also: SoftwarePatternsArentAlexanderPatterns