Patterns made a big noise around the time of the GangOfFour
book. Over the next couple of years, more books (not as good, but still good) appeared. But what of the last couple of years?
There doesn't seem to be that much discussion and exploration of patterns. There are mailing lists, but material isn't really heading out to the general software world. New books have appeared, but nothing that really grabs your attention in the way that the earlier books did. The "patterns community" is still small, and still cliquey.
So we have a few worthy books, but no general uptake of patterns. The notion of gathering and refining patterns seems to have stalled in mid-air.
Do you agree? If so, why do you think this has happened? If you disagree, where are the signs of life?
I can see some of this, though I don't think it's a general trend. Here are some possible reasons:
- The DesignPatternsBook and PatternOrientedSoftwareArchitecture catalogued most of the mainstream patterns. What else do most projects need? There can't be an endless stream of patterns to mine, after all. [This only applies to Object Oriented Design patterns. Lots of folks are writing patterns about things other than OO]
- Patterns are often misapplied. I don't know how many design specs I've seen now that treat them as clipart. They don't work as clipart, but people who apply them that way soon lose the desire to pursue them any further.
- The pattern books are somewhat abstract. Where are the dialectic pattern books? ThePerlCookbook and SmalltalkBestPracticePatterns are two. Where are the same for Java, DNA, Embedded, and SQL? If people can't relate patterns to their solution domain except in "pure" terms, they won't pursue patterns.
- Solution domain experts aren't particularly motivated to document their patterns. No one pays them for it. There's no fame in it. And it's a lot less fun than working.
- There's no TaxonomyOfPatterns. Oh there are some filiations even in GoF, but it's not hierarchical. So how do you know that you have a new pattern to document? You don't unless you read through all the pattern literature to see if it's already there or not. That's onerous.
- The Wiki failed. Oh, it wildly succeeded as an online form, but its process doesn't highlight or hinge on the elicitation of patterns.
Still, all in all, I don't think any of these are showstoppers. I still find patterns very useful for explaining and teaching design and idiom. Less so for architecture, but I think that's because it's much harder to mine architectural patterns. People still think in categories there - WorkFlow
and so on. PoSa
, despite its name, didn't do much of a job on architecture - maybe that's where an ambitious pattern miner could make her mark.
Aargh. A few weeks ago, I read in a "major trade publication" that "client server is dead - everything is going to be web-based". Never mind that web applications are client server themselves. The pundit was declaring a buzzword passe'. Maybe it's not chic to dig into patterns anymore - it doesn't matter to me, because they're in my toolchest and will be used as necessary. -- RobCrawford
There is a difference here. Saying "x is dead - everything is going to be y" implies that x is inferior to y. OTOH, saying just "x is dead" can either mean "x is dead", or, "x is no longer a buzzword, but an accepted practice" which is where I see patterns. PatternsAreAccepted
, not dead.
And yes, nothing can ever match the wow of the GangOfFour
, but are not the most defining parts of a new domain discovered first? The first to arrive cook the juiciest steaks. -- RodneyRyan?
There are plenty of folks still working on patterns. But not all of them are necessarily trying to rush their stuff into production to take advantage of any marketing or buzzword status of the patterns hype:
- JeniferTidwell and JensColdewey have a significant collection of fine UI design patterns that will probably result in at least one book (maybe two).
- RobertBinder? has an OO-Testing book coming out in mid'99 that is chock full of OO-Testing patterns (though its not devoted exclusively to patterns).
- MartinFowler has a book on refactoring patterns: RefactoringImprovingTheDesignOfExistingCode.
- MichaelBeedle and some others are spending a very long, arduous, and thorough effort trying to cull a substantial collection of organization & process patterns.
- SteveBerczuk and BradAppleton are working on documenting a large collection of patterns for software configuration management. See SoftwareConfigurationManagementPatterns
- PhilipEskelin, NatPryce, and KyleBrown are developing their ComponentDesignPatterns language right here on the Wiki and it will most likely become a book at some later time.
- NatPryce and KyleBrown are also working on documenting JavaPatterns and JavaIdioms that will likely make their way into a book someday.
- MarkGrand? is in the middle of a 3 volume set of "Design Patterns in Java." Volume I was already published in the past year. Volume II is due out real soon now (if its not already out) and Volume III is due sometime in 2000. Many of Mark's patterns simply give a Java-specific presentation of existing patterns, but he adds many of his own as well.
- More Java patterns are on the way: Addison-Wesley has its own book due out which will try to do for Java what "The Design Patterns Smalltalk Companion" tried to do for Smalltalk.
- Frank Buschmann, Doug Schmidt, et. al. are busily working on POSA volume II, chock full of design patterns for distributed and concurrent object systems.
- LindaRising et.al. are busily at work on a book of Patterns of Telecommunications Software for IEEE CS Press
- LindaRising et.al. are also busily working on "The Patterns Almanac" for Addison-Wesley
- The PatternLanguagesOfProgramDesign-4 editors have finished selecting the papers from the various 1997 and 1998 PLOP conferences to go into the upcoming PLOPD4 book, which hopefully will be coming out late this year or early next year.
So I honestly don't see that patterns are dead at all (though I certainly hope the hype is)! But places like the patterns mailing lists are less busy than usual because pattern writers have been busy with other things (and the lists always get more quiet during the winter IMHO). Let not make the mistake of
presuming that "quiet" means "dead."
My reaction when I saw this page was to think of the old line:
"Calvin Coolidge is dead."
"How can they tell?"
Seriously, though, does it really mean anything for patterns to be alive or dead, except as a buzzword? I was using patterns for years before anybody told me that that what what I was doing, and I expect I'll keep on using them for years after we stop hearing the word.
Yes. When patterns (or anything) cease to be a buzzword more power is gained by a reduction in unrealistic expectations and skepticism, and an increase in acceptance, study and realistic application. In your response:
I was using patterns for years before anybody told me that that what what I was doing
you have lent patterns much credibility by recognizing them as a new encapsulation of old ideas, removing the buzzword curse of "new new new !". Patterns are now recognized not as a new, unproven way, but as a new form used to represent old, tried and true ways.
Some confusion remains as to the use of the pattern form: some people use it as a notation for new design ideas
, for which it is admirably suited, but this muddies the water considerably.
The truly great thing about patterns is that you know
they will work, because they always did before.
I don't get this last comment. How do I know they worked before? Because someone wrote up something they saw and called it a pattern? I see all kinds of things written up and called patterns, and I am skeptical that they work more than in a rare case. Calling it a pattern doesn't ensure it works.
Of course not. The point of the previous comment is that a lot of things that indeed are not patterns are getting written up in that form, which is ok, I guess, but confusing. Wait a minute...no, actually, it's not OK.
Don't the "Known Uses" (note the plural) of PatternForms
document the necessary pre-conditions for something to be a pattern? [Recurrence is one requirement, there are others. A pattern should be UsefulUsableUsed.]
Alexander seems fairly clear that you find patterns vs
He also seems to suggest that there aren't very many of them.
People building for themselves, to make themselves comfortable, have done such-and-so things, always and everywhere. They do these things in new buildings because they saw them done in older ones and thought that they liked it.
New techniques and materials will have their own patterns that will emerge over time as people find the most comfortable ways to use them.
If you can't produce many examples of an idea having already worked
then how can you claim it as a pattern?
I see all kinds of things written up and called patterns, and I am skeptical that they work more than in a rare case
You are right to be skeptical. The author of a claimed pattern may set your mind at rest trivially, however, by supplying the list of known uses
A suggestion: the next time someone, a colleague, a conference speaker, the author of a book, claims to present a never-before-seen pattern, ask to see the list of known uses. A further suggestion: exactly one use in a doctoral thesis does not count; exactly one use in a/your current project does not count.
Let me be clear, I'm not criticizing researchers, nor suggesting that new design ideas have no value, but please, lets all be clear what we are talking about. By all means use the pattern form to describe a new idea, but call it something else. Make the distinction plain.
(The following points are actually addressed to writers of patterns, not readers of patterns)
Calling it a pattern doesn't ensure it works.
So, demonstrate that it works before calling it a pattern. Demonstrate this by exhibiting the examples of it working from which the pattern was derived. (See UsefulUsableUsed
But, have a care: a claimed pattern with zero or one examples may or may not be any good, if indeed it turns out to be a pattern. Unfortunately, no number of examples, in and of themselves, will make an actual pattern good. However, all good patterns have many examples.
We've only touched the tip of the iceberg with respect to patterns. -- JoshuaKerievsky
Should this be merged with PatternBacklash
Most of this page is old. The list of pattern projects is especially old, with most of
those projects resulting in books (some good, some bad) a few years ago. Two great pattern
books in 2003 are PatternsOfEnterpriseApplicationArchitecture
There is a lot of good work going on, it must not be happening where you are looking for it.