TITLE: August 11 -- My Talk on Writing Patterns
AUTHOR: Eugene Wallingford
DATE: August 17, 2004 1:41 PM
DESC: can we write patterns that live forever?
I finally gave my talk on
writing patterns and pattern languages
this morning. It went well enough, I suppose, but I broke many of
the suggestions I made in the paper: too few examples, too abstract.
Sigh. How can I manage so often often to know what to do yet not
do it? This talk will be better the next time I give it.
The best question at this session was about trying to write patterns
that "live forever". I used Alexander's "Light on Two Sides of Every
Room" as an example, and this prompted someone to point out that even
the best patterns seem to become stale after a certain period of time.
People wouldn't want to have two windows on two sides of their rooms
if they lived in a dirty part of Sao Paulo, so Alexander's pattern is
already dated; and, if Alexander's patterns suffer this fate, how can
we mortals hope to write software patterns that live forever?
My answer was two-fold:
That's my understanding today. If I learn something to make me
change my mind tomorrow, I'll post an update. :-)
- The reason why "Light on Two Sides of Every Room" doesn't
work in certain parts of big cities is that it is out of
contex there -- the patterns that must be present before
"Light" applies aren't there. If we wish to apply
Alexander's pattern language in a form of diagnosis, a la
The Oregon Experiment, we would have to start with
patterns far upstream of this one. Indeed, Alexander would
probably urge us to start from scratch somewhere else and
make a more livable space to begin with!
- In a discipline as young as building software, we can't
expect that we will always understand things as well as
we may in the future. So we should write patterns that
document what works according to our current understanding
of the world and, if we come to understand more or better
five years hence, then update the language. Our pattern
languages are always works in progress, as the software
community discovers its communal knowledge of what gives
software the Quality.