Alexander defines a 'pattern' as a three-part construct. First comes the 'context' - the conditions under which this pattern holds. Next is a 'system of forces'. In many ways, it is natural to think of this as the 'problem' or 'goal'. The third part is the 'solution' - a configuration that balances the system of forces or solves the problems presented.
For an extensive example of the application of patterns, see Chris's other book A Pattern Language. Here he presents over 250 individual patterns that go into the making of successful towns and buildings (in the context of a western, even North American, environment).
I must say these are beautiful books as well.
Applicability of patterns and pattern languages extends far beyond software design. Psychologist EricBerne
offers us his set of patterns of interpersonal relationships gone bad (i.e., games) in a 1964 book called GamesPeoplePlay
is famous for his 1970 book BodyLanguage
a pattern book for recognizing recurring themes in non-lingual communication. Both books give fascinating insights about the way humans have learned to think and behave.
Seems that Chris is up to something: http://www.patternlanguage.com/
Well-designed and visually appealing web site. -- sg
I enjoy the bookshelf design idea once I figured it out, but I do not find the site visually appealing. -- DavidSaff
Hmmm, the bookshelf metaphor is a 'cute' idea, but not a good-design idea. In design, one must take into account context, and no matter what anyone says, the web is not a bookshelf, does not have the same browsing, convenience or scaling properties, and is not really a suitable visual metaphor for presenting this kind of information. The site/sight is also not that visually appealing. A little disappointing :-( -- KevlinHenney
has red text on a red background. (Yeah, I had to remove it from a frameset. :)
Update 2008-07-15: it now has jeans-blue text on a rust-red background. This is the opposite of an improvement.
Here's an interesting site with a pattern language for sustainability: http://www.conservationeconomy.net
On another tack, patternlanguage.com has changed its layout-not really much better than the old one, sorry to say...and they lost the pattern of the day.
-- Eric Allen
Also, the book:
A Pattern Language: Towns, Buildings Construction
by Christopher Alexander etc ISBN 0195019199
This is apparently one of the seminal pattern books. (I've not read it myself yet. The BookList
page links to here and I'm filling in the ISBN number so that I can order it myself -- DaveHarris
Really, it is THE pattern book. The one that started it all. In addition to its other benefits, it is an example of excellent technical writing. It provides modular, inter-connected concepts which can be accessed in any order and which automatically lead the reader to other patterns that might interest her. Many people talk about task-oriented and modular documentation, but almost no one has the guts to implement it as fully and beautifully as it is done here.
Just picked up all three of ChristopherAlexander
's pattern books from Amazon.com --SteveBurnett?
-"Alexander's book has been a close friend for a long time. However I wish there was an easy way of applying it to today's communities."
Also, a web site. http://patternlanguage.com/
N.B.: APL and TWB were written in 1977-9. Alexander has since moved on to Generative Sequences and has written an epic "The Nature of Order" in 4 volumes.
It seems that the best way of building a community that follows Alexander's principles is to accept responsibility for your own space and to apply his PatternLanguage
within that space. If others follow your lead then that's a good thing, and you can pass them a copy of the book. If they don't, at least you are living in a nicer space and nobody loses. Analogies with implementing, say, ExtremeProgramming
are probably there to be drawn.
we are collecting instances of PatternLanguage
and mining out characteristics of what makes a good PatternLanguage
. If you have suggestions or insights on what you think makes a good PatternLanguage
or if you have or know of a language we are not taking into account or analyzing, then feel free to add it in. --AliArsanjani
In my opinion, C.A. is right in that we are not only able to think in patterns, but that our whole existence is based on patterns, including our thinking and the inner workings of the mind/brain.
As such, the philosophy of C.A. is more natural than for example in thinking just structural or deterministic or whatever. Therefore, the whole pattern movement is going to be a success and has become a success because of it being natural.
However, collecting related patterns to actually form a language of pattern is a tedious and, sadfully, sometimes a fruitless attempt as it is often very to highly complex to form a language of patterns or to find related patterns. Are there any patterns for defining a pattern language? Did C.A. describe a (natural) way of finding inter-correlating patterns that together make up a pattern language, even if you are not entirely specialized in the field of for example the architecture of buildings or landscapes or cities or even software systems?
And, patterns and PatternLanguage
is always also an abstraction of what we see or feel or believe. Therefore there must or should be some way of formalized way of DefiningPatternLanguages?
. There are some attempts, some of which I have reviewed in the past but which have slipped my mind since then, either because these were not capable enough or because they simply did miss the point. Any pointers here, somebody?
[Maybe there is a path, since DesignPatterns
are readily described by UML, from:
graphical depiction --> UmlAsciiArt --> AbbreviatedUmlAscii --> something like the SyntaxOfFirstOrderLogic
, if needed]
See also: PatternFamilies