On Christopher Alexander (was: Patterns and Compositionality)
Fri, 28 Jan 2000 21:13:22 +0100
Jim Little wrote:
> This is exactly the point I was trying to address in my original post:
> Massimo Dentico wrote:
> > *if* the substitution process (generalizing/inlining) for
> > patterns in OOD is equivalent to the substituition process in
> > functional/logic languages (pattern matching) [...]
> It is not equivalent.
> Design patterns in OOD are not substituted, generalized, or inlined.
> The concept has no meaning for design patterns. Design patterns are a
> way of communicating knowledge. They're written in natural language for
> use by human observers. To use a design pattern, you read it,
> internalize it, and intuit its applicability to your design. Good
> design is a matter of communication and understanding, not
> functionality, and as such it simply can't be formalized or automated.
> As a tool for communicating "good design," neither can design patterns.
> Comparing design patterns to pattern matching in functional languages is
> a fallacy. They are not comparable.
> PS: I'm not trying to address the rest of the discussion -- I'm just
> trying to clear up a pretty strong misunderstanding about the nature of
> design patterns.
About possible "formalization" of patterns, this post could have
as subject: commercial vulgarizers(?) considered *extremely*
Jim, I suggest to read this: "SOME NOTES ON CHRISTOPHER ALEXANDER.
By Dr. Nikos A. Salingaros, mathematician and architectural
IMHO is an extremely interesting reading. It completely
rehabilitates the subject of patterns to my eyes. So, thanks for
Dr. Alexander is the author of numerous books and papers. He has
initiated a new approach to architectural thinking, in which the
same set of laws determines the structure of a city; a building;
or a single room. He has spent most of his life in searching for
these laws. His approach to solving this universal problem takes
advantage of scientific reasoning, and totally opposes other,
unscientific approaches based on fashion, politics, or arbitrary
personal ideas. This is so different from the way architecture has
been taught since the second world war that it causes conflicts
with established architectural schools.
Alexander offers definitive solutions to the problems of urban
architecture and design. It is a great pity that these were not
adopted when first published. Fortunately, a small number of his
ideas have been incorporated into the "New Urbanism".
Nevertheless, this very recent movement by no means represents a
wholesale application of his results. Alexander has actually
abstracted the process by which organic and inorganic forms evolve
-- which is the same process that governs the growth of a city.
These results lie at the basis of how matter organizes itself
coherently, and are the opposite of the modern planning approach
in which grids, zones, roads, and buildings, based on some
preconceived design on paper, are imposed on human activity. These
results will be expounded at length in the four-volume The Nature
of Order, which is now being prepared for publication.
INFLUENCE ON COMPUTER SCIENCE
One of the most influential persons in the "Patterns Movement",
James Coplien has posted a History of Patterns, and is doing
pioneering work on applying patterns to human organizations (see
next section). He also has embarked on a search for the deep
geometrical structures in software that correlate with "beauty"
and "order" in architecture and nature. This fascinating
development, based on Alexander's The Nature of Order, is being
documented in a series of articles published in the C++ Report.
They are all accessible from the index site Geometry In Code.
Pattern languages have been developed for many diverse specific
disciplines that relate to computer science, such as individual
applications and computer-human interfaces. Tom Erickson has
collected links to Pattern Languages for Interaction Design.
These include user-interface pattern languages. The pattern
language developed by Jenifer Tidwell is especially comprehensive,
and addresses the problems inherent in the design of any complex
or interactive artifact. Although, as in all links in this
section, this is written by a computer scientist, it in fact
answers questions about general design first raised in the 1960's
(by people such as B. Archer, C. Jones, H. Rittel, and H. Simon)
that were judged to be too complex to solve.
INFLUENCE ON INFORMATION STRUCTURES AND ORGANIZATIONS
Certain computer scientists have taken Alexander's ideas beyond
their initial application to the internal organization of computer
programs, into the software development process itself. As
Alexander's results are entirely general, they also apply to the
internal structure of organizations and corporations. This very
exciting development is now growing rapidly into an entirely new
business discipline. Such an innovative (and entirely logical)
application of Alexander's results could start a new approach to
organization in the commercial and government sectors. There are
very strong hopes at this time that an Alexandrine analysis and
application of organizational patterns can redesign corporations.