The Origins of Pattern Theory
the Future of the Theory,
And The Generation of a Living World
The following presentation was recorded live in San Jose, California, October
of 1996, at The 1996 ACM Conference on Object-Oriented Programs, Systems,
Languages and Applications (OOPSLA).
Introduction by Jim Coplien
Once in a great while, a great idea makes it across the boundary of one
discipline to take root in another. The adoption of Christopher Alexander’s
patterns by the software community is one such event. Alexander both commands
respect and inspires controversy in his own discipline; he is the author
of several books with long-running publication records, the first recipient
of the AIA Gold Medal for Research, a member of the Swedish Royal Academy
since 1980, a member of the American Academy of Arts and Sciences, recipient
of dozens of awards and honors including the Best Building in Japan award
in 1985, and the American Association of Collegiate Schools of Architecture
Distinguished Professor Award. It is odd that his ideas should have found
a home in software, a discipline that deals not with timbers and tiles
but with pure thought stuff, and with ephemeral and weightless products
called programs. The software community embraced the pattern vision for
its relevance to problems that had long plagued software design in general
and object-oriented design in particular. Focusing on objects had caused
us to loose the system perspective. Preoccupation with design method had
caused us to loose the human perspective. The curious parallels between
Alexander’s world of buildings and our world of software construction helped
the ideas to take root and thrive in grass-roots programming communities
world-wide. The pattern discipline has become one of the most widely applied
and important ideas of the past decade in software architecture and design.
We can trace the path of influence through three primary sources. The first
is the Design Patterns book by Gamma et al., a book that helped people
conceptualize beyond individual design relationships to grasp important
structure of micro-architectures, and to value proven solution strategies
over raw innovation. The second was the series of pattern conferences (PLoPs)
that provided a forum for pattern enthusiasts to support each other in
creating a new body of software literature. The PLoPs were also a forum
where the community could struggle with growing from individual patterns
to pattern languages that engender systems thinking.
But growth into the deeper and more fundamental aspects of patterns has
been slow and difficult. And even as we struggle with the growth from patterns
to pattern languages, there is a level of the pattern discipline that the
software community has yet scarcely touched: the moral imperative to build
whole systems that contribute powerfully to the quality of life, as we
recognize and rise to the responsibility that accompanies our position
of influence in the world. And that leads us to the third inspiration for
the direction of patterns in our discipline: Christopher Alexander himself,
who directly engaged our community in this keynote speech at OOPSLA ‘96.
The timing and audience of the venue afforded Alexander the chance to reflect
on his own work and on how the object-oriented programming community had
both hit and missed the mark in adopting and adapting his ideas to software.
As such, the speech was a landmark event that raised the bar for patterns
advocates, for object-oriented programmers, and for software practitioners
everywhere. Beyond that, this speech has timeless relevance to any engineering,
scientific, or professional endeavor.
* * *
… I'd like you all to very heartily welcome Professor Alexander as he addresses
"Thank you very much. This is a pretty strange situation I find myself
in. I hope you sympathize with me. I'm addressing a room full of people,
a whole football field full of people. I don't know hardly anything about
what all of you do. So – please be nice to me.
My association with you -- if I can call it that -- began, oh it must have
been two or three years ago. I began getting calls from computer people.
Then somebody, a computer scientist, called me and said that there were
a group of people here in Silicon Valley that would pay $3000 to have dinner
with me. I thought -- what is this? It took me some time to find out. I
didn't really understand what had been going on, and that my work had somehow
been useful to computer science. Only now I'm now beginning to understand
a little bit more of what you are doing in your field and the way in which
it comes, in part, from some of the things that I've done.
When I faced the question of addressing you, I wondered what on earth I
should talk about. And, earlier, a few months ago I faced a similar thing
when I was asked to write an introduction to Richard Gabriel's book (Patterns
Of Software) and again the question for me was what in the world should
I write about? What is there that I could say that would be of interest?
And, because I, in a way, myself started out in computers many years ago
in the late '50's, this question became quite fascinating to me and quite
absorbing. But still, I wasn’t given much to go on. Take Jim for example.
When he invited me, he was very friendly and I said to him - look what
do you want me to talk about and so forth. He said “Oh that doesn't matter.
Just talk about anything. Because it's you, and because of the history
of this pattern problem, people will find it interesting. But still I thought,
What should I really talk about?
What is the connection between what I am doing in the field of architecture
and what you are doing in computer science and trying to do in the new
field of software design? That is the question I must talk about. What
I'll do, in the time I’ve got here, is to tell you where my thoughts went
as I stepped through the invention of the pattern concept, and where I
have gone since then. In addition, I shall reach a conclusion which may
surprise you. As I've been preparing for this speech during the last few
months. I ended up with something that may startle you, and you may find
quite strange. But, I'm not going to tell you what that is just yet.
In effect, I'm just going to do three things.
(A) Pattern Theory. I'm going to talk first of all about patterns and pattern
languages, what I did about that, a few little points about problems we
encountered, why we did it, how we did it, and so forth. That is a historical
survey referring back to the late 60s and early 70s.
(B) The Nature of Order. Then, I'm going to summarize the theoretical framework
which has evolved out of the pattern work: a framework which is about to
be published in a series of four books collectively called The Nature Of
Order, four books that will be put out by Oxford University Press in the
year 2000. That framework is a fairly radical departure from what the pattern
language in the earlier theories contained, although it is consistent with
them. That'll be the second thing. And, I'll just try and sketch that out
in the hope that there might be some carryover or you might possibly find
it interesting -- even though of course I will have no way to apply this
to your field directly when I tell you about it. However, there are undoubtedly
abundant connections between the two fields that can be drawn.
(C ). What the future holds in store: The Generativity Problem and the
Generation of a Living World. At the time I wrote the introduction for
Richard Gabriel's book, that was really as far as I had gotten in trying
to trace the connection between my work and your work in the field of computer
science: I tell you what I'm doing, and maybe some of you folks might find
it interesting or be able to extrapolate. But I couldn't really find that
sufficient to be satisfying. I felt that there is some more significant
connection between your field and mine. Or at least that there perhaps
is. And that finally brought me to the third point.
The third thing I'll talk about is how I now perceive that connection.
I suppose that some of you know what I do for a living. You know I'm an
architect. All of my life I've spent trying to learn how to produce living
structure in the world. That means towns, streets, buildings, rooms, gardens,
places which are themselves living or alive. My assumption here – a sad
one -- is that for the most part what we have been doing for ourselves,
at least during the last fifty years or so, perhaps starting somewhere
around World War II, has virtually no ability to produce that kind of living
structure in the world. This living structure which is needed to sustain
us and nurture us and which did exist to some degree in the traditional
societies and in rural communities and in early urban settlements has disappeared.
It is drastically gone. We don’t know how to create it or generate it any
Of course, especially for architects, that is a debatable matter. Some
professional architects might say, What are you talking about? What we
are doing is absolutely fine, the buildings we are building today are excellent,
very good, no problem!! I suppose the architect of this particular huge
and nauseating conference hall we are in, here in San Jose, where we can
hardly understand each other, would say that, too. But, actually, it isn't
fine. It's a hell of a problem. It's a serious problem. It affects every
man, woman, and child on Earth. We are so ignorant about how to do this,
to make living structure on Earth, it is lamentable. And it is very, very
serious, becomes more serious every day, because the population of the
Earth is growing, and the Earth is being damaged more and more – and with
the damage to our towns and buildings, we too are being damaged.
The fact that we don't know, really do not know what we're doing, and the
fact that the built world is not nurturing is a very, very drastic matter
for all of us. This is my concern. That is what I try to deal with every
A. Pattern theory
The idea that materialized in the published pattern language was first
of all, of course, intended just to get a handle on some of the physical
structures that make the environment nurturing for human beings. And, secondly,
it was done in a way that would allow this to happen on a really large
scale. And, what I mean by that is that we wanted to generate the environment
indirectly, just as biological organisms are generated, indirectly, by
a genetic code. Architects themselves build a very, very small part of
the world. Most of the physical world is built by just all kinds of people.
It is built by developers, it is built by do-it-yourselvers in Latin America.
It is built by hotel chains, by railroad companies, etc., etc. How could
one possibly get a hold of all the massive amount of construction that
is taking place on Earth and, somehow, make it well, that means let it
be generated in a good fashion and a living fashion. This decision to use
a genetic approach was not only because of the scale problem. It was important
from the beginning, because one of the characteristics of any good environment
is that every part of it is extremely highly adapted to its particularities.
That local adaptation can happen successfully only if people (who are locally
knowledgeable) do it for themselves. In traditional society where lay people
either built or laid out their own houses, their own streets, and so on,
the adaptation was natural. It occurred successfully because it was in
the hands of the people that were directly using the buildings and streets.
So, with the help of the shared pattern languages which existed in traditional
society, people were able to generate a complete living structure.
In our own time, the production of environment has gone out of the hands
of people who use the environment. So, one of the efforts of the pattern
language was not merely to try and identify structural features which would
make the environment positive or nurturing, but also to do it in a fashion
which could be in everybody's hands, so that the whole thing would effectively
then generate itself.
What, now, of my evaluation of what you are doing with patterns in computer
science. (Bear in mind, as you hear my comments, that they need to be taken
with a grain of salt; I'm ignorant; I'm not in your field.) When I look
at the object-oriented work on patterns that I've seen, I see the format
of a pattern (context, problem, solution, and so forth). It is a nice and
useful format. It allows you to write down good ideas about software design
in a way that can be discussed, shared, modified, and so forth. So, it
is a really useful vehicle of communication. And, I think that insofar
as patterns have become useful tools in the design of software, it helps
the task of programming in that way. It is a nice, neat format and that
However, that is not all that pattern languages are supposed to do. The
pattern language that we began creating in the 1970s had other essential
features. First, it has a moral component. Second, it has the aim of creating
coherence, morphological coherence in the things which are made with it.
And third, it is generative: it allows people to create coherence, morally
sound objects, and encourages and enables this process because of its emphasis
on the coherence of the created whole.
I don't know whether these features of pattern language have yet been translated
into your discipline. Take the moral component, for example. In the architectural
pattern language there is, at root, behind the whole thing, a constant
preoccupation with the question, Under what circumstances is the environment
good? In architecture that means something. It means something important
and vital that goes, ultimately, to the nature of human life. Of course,
there are plenty of people who will debate whether the question is objective.
Some architects are still going around saying, It is all a matter of opinion.
But that is a dying breed. The moral preoccupation with the need for a
good environment, and for the living structure of built environment, and
the objective nature of that question, is largely accepted. I do not know
whether that sort of moral component exists in computer science, or in
software engineering, or in the way in which you do things.
I understand that the software patterns, insofar as they refer to objects
and programs and so on, can make a program better. That isn't the same
thing, because in that sentence “better” could mean merely technically
efficient, not actually “good.” Again, if I'm translating from my experience,
I would ask that the use of pattern language in software has the tendency
to make the program or the thing that is being created is morally profound
-- actually has the capacity to play a more significant role in human life.
A deeper role in human life. Will it actually make human life better as
a result of its injection into a software system? Now, I don't pretend
that all the patterns that my colleagues and I wrote down in A Pattern
Language are like that. Some of them are profound, and some of them are
less so. But, at least it was the constant attempt behind our work. That
is what we were after. I don't know whether you, ladies and gentlemen,
the members of the software community, are also after that. I have no idea.
I haven't heard a whole lot about that. So, I have no idea whether the
search for something that helps human life is a formal part of what you
are searching for. Or are you primarily searching for - what should I call
it - good technical performance? This seems to me a very, very vital issue.
People have asked me what kind of a process was involved in creating the
architectural pattern language? One of the things we looked for was a profound
impact on human life. We were able to judge patterns, and tried to judge
them, according to the extent that when present in the environment we were
confident that they really do make people more whole in themselves. Of
course you may ask, How in the hell did you test for that? But that is
too long a story which I cannot cover in this speech. The important point
is that such testing was going on continuously.
A second, almost more important thing was going on. Whenever we had a language
under development we always asked ourselves, To what extent does that language
generate (hence produce) entities (buildings, rooms, groups of buildings,
neighborhoods, etc.) that are whole and coherent? In other words, suppose
I write a pattern language for a campus, and, I think I've got some sort
of a language that looks as though it will actually do the job. To test
it, I let it loose by giving it to people and asking them (in simulated
form) to generate different campuses with this language. Let’s see what
the resulting campuses look like. And we test it ourselves in the same
way, by using it to generate designs, rapidly, and only for the purpose
of testing the results for their coherence. As it turns out, many of the
languages that one creates do not generate coherent designs or objects.
That is, they contain a bunch of good ideas. One can use these good ideas
to (sort of) put something together from them, and a few fragmentary structural
ideas will be present in the result. But that does not yet mean that the
campuses created (in the above example) are coherent, well-formed, campuses?
We were always looking for the capacity of a pattern language to generate
coherence, and that was the most vital test used, again and again, during
the process of creating a language. The language was always seen as a whole.
We were looking for the extent to which, as a whole, a pattern language
would produce a coherent entity.
Have you done that in software pattern theory? Have you asked whether a
particular system of patterns, taken as a system, will generate a coherent
computer program? If so, I have not yet heard about that.. But, the point
is that is what we were looking for all the time. Again, I have no idea
to what extent that is true for you and whether you are looking for the
same thing when you work on software patterns.
So far, as a lay person trying to read some of the works that have been
published by you in this field, it looks to me more as though mainly the
pattern concept, for you, is an inspiring format that is a good way of
exchanging fragmentary, atomic, ideas about programming. Indeed, as I understand
it, that part is working very well. But these other two dimensions, (1)
the moral capacity to produce a living structure and (2) the generativity
of the thing, its capability of producing coherent wholes -- I haven't
seen very much evidence of those two things in software pattern theory.
Are these your shortcomings? Or is it just because I don't know how to
read the literature?
So much for my short historical survey of what we have been doing with
pattern languages during the last three decades.
B. The Nature of Order
The pattern theory was followed by a deeper theory. I began to notice,
by the late 70s, some weaknesses in our work with patterns and the pattern
(1) Under the circumstances that I was most interested, when we and others
were using these patterns to generate buildings, the buildings generated
were okay, but not profound. There was often a lot of nice stuff going
on in them. People were improving certain features, perhaps the daylight
was improved, or perhaps the entrance of a building was improved or the
characteristics of a street might be improved or an alcove in a bedroom
might make it more intimate or something like this. So, there were various
isolated features of buildings that were improvements in building performance.
The existence of the patterns also allowed people to have better control
over their own environment. It succeeded in embodying that control in the
real buildings that they made with the pattern material. That was good.
But, nevertheless, were the buildings profound structures? To what extent
did they really have coherent living structure as wholes. By the late 70s,
I had begun to see many buildings that were being made in the world when
the patterns were applied. I was not happy with what I saw. It seemed to
me that we had fallen far short of the mark that I had intended. But, I
also realized that whatever was going wrong wasn't going to be corrected
by writing a few more patterns or making the patterns a little bit better.
There seemed to be something more fundamental that was missing from the
pattern language. So, I started looking for what that thing was.
(2) At about the same time I began to notice a deeper level of structure
and a small number (fifteen) of geometric properties that appeared to exist
recursively in space whenever buildings had life. These fifteen properties
seemed to define a more fundamental kind of stuff; similar to the patterns
we had defined earlier, but more condensed, more essential -- some kind
of stuff that all good patterns were made of.
These were simple ideas. I can't take you through all 15 but they are
properties like "boundaries" which will not only delineate but connect the
inside to the outside, or "positive space," as when you look at a Matisse
cutout and see that the space between the colored paper is not amorphous but also has form. Anyway I began to notice that particular individual patterns seemed really to come always from the 15 deep properties that kept occurring again and again.
Another thing that was happening around this time (late 70s early 80s),
my colleagues and I began toughening up our ability to discriminate empirically
between living structure and not living structure. During the years of
doing the pattern language we'd really been intuitive about that and not
very rigorous. We were just trying to get patterns written and learning
to apply them without asking rigorously if they made buildings with more
life in them. But, at this point (about 1980), we felt it was pretty important
to get a fix on the difference between a chair which has a more living
structure and a chair that has a less living structure. And the same for
a building or a room or for a main street in a town. If you want to say
this one has life, this one has less life, how do you say that with any
degree of empirical certainty? Can it, in fact, be made a relatively objective
matter which people can agree about if they perform the same experiments.
Indeed, we did find such experimental techniques. The use of these techniques
greatly sharpened our ability to distinguish what was really going on and
what structures then correlated with the presence of life in a bit of the
environment? The use of these techniques also helped us to refine the fifteen
deep geometric properties, as necessary correlates of all life in designed
structures. These fifteen properties turned out to be a substrate of all
patterns, and began showing up more and more clearly in our work as the
main correlates of living structure in places, buildings, things, space
and so forth.
[Side-remark: I need to say a word about the existence of objective criteria
and experimental methods. In my discipline there are tremendous vested
interest. Many architects claim, and want to claim, that in architecture
there is no such thing as truth; that is because everyone wants to do their
own stupid thing and get away with it. So, depending on who you talk to,
they'd say well this stuff Alexander's been discovering is a lot of nonsense.
There is no such thing as objectivity about life or quality. this and so
forth. But, I am here today, and they are not here, so I'm telling you
that there is objectivity. They are simply mistaken. Let's suppose that
we’ve got a sidewalk somewhere on a bit of a street and we’ve got another
sidewalk somewhere else on another bit of a street. We are trying to come
to conclusions about which one has more life, which one is a more living
My belief, by the way, when I began trying to find these experimental methods,
always was that there really is such a thing, and that actually everybody
knows it, but that it has been suppressed. That is because of the world
view that we have and the way of looking at things and the nervousness
about intellectual rigor...that people of our era have. Although they have
these judgments within them, somehow are separated from their ability to
make these judgments correctly. In other words, what I'm trying to say
is....and this is just some sort of instinct that I had going in was that
this was something childish really that everybody knows. But, for some
reason, we are so messed up that we can't see it. So these experiments
were, in effect, designed to penetrate that end result through.
The essence of the experiments is that you take the two things you are
trying to compare and ask, for each one, is my wholeness increasing in
the presence of this object? How about in the presence of this one? Is
it increasing more or less? You might say this is a strange question; What
if the answer is Don't know or They don't have any effect on me? Perfectly
reasonable! That can happen. But the resolution is easy. What turns out
to happen is that if you say to a person “Yes, it is a difficult question,
it might even sound a bit nutty. But anyway, please humor me and just answer
the question.” Then it turns out that there is quite a striking statistical
agreement, 80-90%, very strong, as strong a level of agreement as one gets
in any experiments in social science. The really strange part is that the
things which are then measured by experiments of that sort will not.....you
say it sort of.... all of these different experiments have to do with something
like that. Do you feel more whole? Do you feel more alive in the presence
of this thing? Do you feel that this one is more of a picture of your own
true self than this thing you know whatever? It is always looking at two
entities of some kind and comparing them as to which one has more life.
It appears to be a rank bit of subjectivity. In other words, it sounds
like well okay, fine. I mean maybe this is the truth about human beings
in the sense about our coordination or about our perception or about our
feelings. But that is not necessarily the same as saying living structure
as such is a real thing that resides in those objects. But anyway, to cut
a long story short. It turns out that these kind of measurements do correlate
with real structural features in the thing and with the presence of life
in the thing measured by other methods, so that it isn't just some sort
of subjected I groove to this, and I don't groove to that and so on. But
it is a way of measuring a real deep condition in the particular things
that are being compared or looked at.]
What is odd about this, and in a way as our work went further and further,
it kept bringing big functional and practical matters back to the human
person. So, in other words, you take a parking lot. There are lots of technical
problems in the parking lot. You have got to make it work. Cars have got
to be able to move around. You know there are security problems. There
are in-and-out problems. There are maintenance problems. As a whole, the
way a parking lot works is essentially a technical thing. The question
is, Is it working well or not well? And yet the functionality of the thing
measured by these various ordinary bits of technical discussion correlates
with the condition measured by the question, Do I feel myself to be more
whole? It works well when you are getting a positive answer to this question.
Thus there is a hint of a profound connection between the nature of matter
and behavior of material systems, and the human person. Even in engineering
design, as for instance where one considers the structural behavior of
a bridge. Or the patterns of movement in something where a lot of cars
are moving about, and there are complicated questions about how they move
and so forth. In these examples very, very practical matters are nevertheless
correlated with these apparently personal questions about whether the thing
has life and whether it promotes life in me and you.
So there began developing, in my mind, a view of structure which, at the
same time that it is objective and is about the behavior of material systems
in the world, is somehow at the same time coming home more and more and
more, all the time, into the person. The life that is actually in the thing
is correlated in some peculiar fashion with the condition of wholeness
in ourselves when we are in the presence of that thing. The comparable
view, in software design, would tell you that a program which is objectively
profound (elegant, efficient, effective and good as a program) would be
the one which generates the most profound feeling of wholeness in an observer
who looks at the code.
The important thing is that -- in architecture -- this is not merely a
hunch but a testable empirical result. It means that the objects that are
most profound functionally (when I say objects, I mean buildings, streets,
door knobs, shelf, room, dome, bridge)… the objects that are most profound
functionally are the ones which also promote the greatest feeling in us.
This is a very peculiar thing. At first it sounds like rank sentimentality;
and you just say, It can't be true. Why should it be true? And yet, it's
a discovery which accords very well with the era that we live in. Because
we are living in a period where that is perhaps the most noticeable and
most problematic feature of our world is that feeling has been removed
from it. When I make a joke in reference to this horrible meeting hall
that we are in, maybe I am beating a dead horse, but I mean really, the
problem is that whatever feeling there is in here is obviously not a profound
positive feeling. And this is what we have come to expect in our modern
world. The failure of that profound feeling to exist in the world around
us at small scales, large scales, middle scales, here, there and everywhere,
is tragic. It's the thing that we miss. Of course, people have been writing
about this for many decades. Writers have, of course, made this known.
We all know it. The difficulty is that people don't seem to know what to
do about it. If anything, at the moment, (I'm talking now again about my
own discipline, of architecture) the problem is getting worse. It's not
getting better. The world that is being built is more and more unfeeling.
We are in a sense more lost, more fragmented, more sort of wandering about
in this lonely desert than before.
If there really is a way of looking at structures which both deals with
real functional structure in the ordinary technical and practical sense,
and simultaneously has its roots in human feeling, there will be a very
huge and positive step. In particular, the fifteen properties that I have
mentioned provide us the ability to be precise about the nature of living
structure, in just precisely such a way that it is connected, not only
to all mechanical function, but also to the depths of human feeling. That
is why it is an important structure.
At the root of these fifteen properties, there appears to be a recursive
structure based on repeated appearances of a single type of entity -- the
primitive element of all wholeness. These entities are what I call “centers”.
All wholeness is built from centers, and centers are recursively defined
in terms of other centers. Centers have life, or not, in different degree,
according to the degree that the centers are built from other centers using
the fifteen geometric relationships which I have identified. This scheme,
which is at the foundation of all the work in The Nature of Order, provides
a complete and coherent picture of all living structure.
Stretching a bit, I think there may even be a little bit of a connection
between the geometric centers which appear as the building blocks of all
life in buildings, and the software entities that you call “objects.” Centers
are field-like structures that appear in some region of space. They don't
have sharp boundaries, but they are the focal organizing entities that
one perceives at the core of all pattern, all structure, and all wholeness.
Everything is made of these kind of centers. The centers are more living
or less living. And, that's essentially the only important property that
they have. And the question of whether a center is more living or less
living depends recursively on the amount of livingness in the other centers
that it is made of, because each living center is always (and can only
be defined as) a structure of other centers. This sort of recursion is
familiar in computer science. But whether the structure I have discovered
and reported in The Nature of Order will translate in any interesting ways
to things that you do, I don't know. (It is true, I suppose that all software
is made of objects, and nothing but objects. Could it be said that some
objects have more life, and others less? If so, there would be a profound
correspondence). What is true, I can tell you from my own experiences in
these last years, is that when one has this view of things in architecture,
it becomes enormously easier to produce living structure in buildings.
It has immediate practical usefulness. If you start understanding everything
in terms of these living centers, and you recognize the recursion that
makes a center, living as it is, dependent on the other centers that it
is made of and the other larger centers in which it is embedded, suddenly
you begin to get a view of things which almost by itself starts leading
you towards the production of more successful and more living buildings.
This insight goes far beyond the power of the pattern language. Although
the patterns define relations which might be regarded as specific instances
of the recursive interaction of centers, the overall view of centers gives
more comprehensive and more powerful results. It directly effects your
ability to make good architecture, in a way that pattern language was not
yet able to do by itself. This is a much more powerful and beautiful view
than what's embedded in the pattern languages, because when one has constructed
this view.... you say well what is a pattern really? Then it turns out
that patterns are merely a few of the structural invariants that appear
within these centers under very, very particular conditions. So they're
certainly interesting and important, but they don't have the same depth
or the same universal character as these other structures that I'm speaking
Now we come to the crunch. Once we have the view of wholeness and centers,
linked by the fifteen deep properties, we have a general view of the type
of whole which must occur as the end product of any successful design process.
And because we have a view of it as a whole, we are now able to understand
what kinds of overall process can generate good structure, and which cannot.
This is the most significant aspect of The Nature Of Order, and of the
new results I am presenting to you in this Part B.
It means that we can characterize not merely the structure of things which
are well-designed, but we can characterize the path that is capable of
leading to a good structure. In effect, we can specify the difference between
a good path and a bad path, or between a good process and a bad process.
In terms of software, what this means is that it is possible, in principle,
to say what kind of step-by-step process can produce good code, and which
ones cannot. Or, more dramatically stated, we can, in principle, specify
a type of process which will always generate good code.
Of course we have not actually done this for the production of code. We
have done it for design and construction of buildings. But it is possible.
This is, if you like, the holy grail of software design -- specification
of the kinds of process which will (always) generate good, efficient, economical,
beautiful, and profound, code.
What are the details? I can tell you in the case of buildings. If one has
identified living structure with a reasonable level of objectivity, and
if one has identified this recursive center-based structure as being the
key to the whole thing, that's all very well. But then of course the practical
question arises, How the hell do you produce this living structure? What
do you have to do to actually produce it? You can clumsily try to find
your way towards it in a particular case. But, in general, what are the
rules of its production? The answer is fascinating. It turns out that these
living structures can only be produced by an unfolding wholeness. That
it, there is a condition in which you have space in a certain state. You
operate on it through things that I have come to call "structure-preserving
transformations,” maintaining the whole at each step, but gradually introducing
differentiations one after the other. And if these transformations are
truly structure-preserving and structure-enhancing, then you will come
out at the end with living structure. Just think of an acorn becoming an
oak. The end result is very different from the start point but happens
in a smooth unfolding way in which each step clearly emanates from the
Very abstract, I know, but the punchline is the following. That is what
happens in all the living structures we think of as nature. When you analyze
carefully just what's going on and how things are happening in the natural
world, this sort of structure preserving transformation tends to be what's
going on most of the time. That is why, when nature is left alone, most
of the time living structure is produced. However, in the approaches that
we currently have to the creation of the built world and the environment;
(planning design, construction, and so forth), that is simply not what
is happening. The process of design that we currently recognize as normal
is one where the architect or somebody else, is sort of moving stuff around,
tryingto get into some kind of good configuration. Effectively this means
searching in an almost random way in configuration space, and never homing
in on the good structure. That is why the present-day structure of cities,
buildings, conventional halls, and houses, are so often lifeless. The process
by which they are generated are -- in principle -- not life creating or
If a process doesn’t go in the structure-preserving way that I'm talking
about, the result is never living structure.
In effect you can write theorems which say, Under the kind of conditions
which occur in the construction industry today, you cannot produce living
structure. So, the poor son-of-bitches designed and built this convention
center were stuck with something lifeless, because they were embedded in
the wrong kind of process. There was nothing they could do. about it. It
was part of the process by which this kind of entity is produced in today's
society. As things stand, it cannot come out with a living structure at
the end. That is a shattering discovery.
A very large part of my work and that of my colleagues in the last years
has been one of trying to define social processes, economic processes,
administrative and management processes which are of such a nature that
they permit true structure-preserving unfolding to occur in society, thus
to allow the generation and production of living structure. This is what
I do most of the time is that I'm trying to do real projects of one sort
oranother where I'm introducing this unfolding process and trying to make
it work under the conditions available to us in 1996. The social and technical
shifts involved are large. The shifts in thought, in practice, in administration
of money, in contracts, all sorts of real nitty-gritty things that one
would much rather not mess with because they are so hard, you must mess
with because it is those processes which are undermining the ability for
our whole contemporary social process to be structure preserving unfolding.
If life is to be created, these processes must change.
That is the end of my part B.
C. What the future holds in store: The Generativity Problem and the Generation
of a Living World
Let us now consider a problem of magnitude. There are some two billion
buildings in the world, about 2 x 109 buildings. Differently stated, the
total amount of built stuff is something on the order of about 1012, 1013
square feet of construction. The total amount of built stuff in Manhattan,
is somewhere on the order of 109 square feet. If you include all the exterior
space in the world as well, the part of the outdoors that is somehow having
to do with human beings and is part of our immediate world, gardens and
streets and agriculture and all of that, then -- for the world -- we're
somewhere up around 1014 square feet of constructed designed space.
How are we going to deal with all that? How do we create, or generate,
living order in 1014 square feet of construction? What process could possibly
accomplish this within, say, one generation -- the next 25 years. The effort
of architects, no matter how hard we try and no matter how much good will
we put in, it does not begin to scratch the surface of that task. All the
architects in the world, together, working as they do today, cannot design
more than say 1010 square feet per year -- a tiny, tiny percentage of what
is needed -- far too small to be effective.
I have, for many years, thought that this could only be solved by a genetic
approach -- an approach where deep structure, spread through society, creates
and generates the right sort of structure, very much as genetic code creates
and generates organisms and ecological systems -- indirectly, by letting
loose life creating process.
That is what I still believe. But, today, I am convinced that the equivalent
of the genes that act in organisms will have to be -- or at least can be
-- software packages, acting in society. If these software packages are
life creating, and accepted, and widely enough spread throughout the world,
there is a chance we might get a grip on this problem: provided that the
software is freeing, liberating, allows each person individual control
and decision making power to do the right thing, and to create living structure,
locally, wherever they are. This task must fall, inevitably, at least in
part, on your shoulders.
The people who were kind enough to invite me to give this speech originally
assured me that if I just explained the intellectual history (as I have
done so far), there will be those among you who may find it interesting,
that somehow they might latch on to it or know how to translate it into
something that's more directly relevant to your own concerns. That is after
all, just what you have done in the last five years with pattern languages.
There clearly is a useful parallelism between our two disciplines.
However, after receiving this invitation, and contemplating the questions
I could raise, I started dwelling on a conviction that was growing in me.
This conviction led me to feel that there was a deeper coincidence in what
you are doing in software design and what I am doing in architectural design.
I began to feel that there is a deeper connection, which suggests that
the two disciplines might merge in a way that would benefit us both – you
in your discipline and me in my discipline. In the next few minutes I will
try to sketch the nature of this connection.
As an architect, of course like anybody concerned with these things, I
have a passion to try and make these things happen. It's not enough just
to say well living structure isn't being produced. I have to ask myself...the
question I do ask myself...the question all the time is, OK, well, what
are we going to do about it? Here we've got this poor Earth sinking under
the weight of all this dross. And, what are we actually going to do? I
do a 10 million dollar project here and I do a 10 million dollar project
there. But that accomplishes virtually nothing. Life is short. A few of
those projects....and what is it? It is an atom in the proverbial bucket.
It's nothing. All of the efforts of the architectural brethren, even if
I can persuade them of the truth of these things. It is still a drop in
the bucket. That by itself, will not affect more than a thousandth part,
perhaps no more than a millionth part, of the structure covering the built
part of the Earth.
When I started out twenty-five, thirty, years ago, I really thought that
I would be able to influence the world very fast. Especially when I got
to the pattern language. I thought, boy, I've really done it. This is going
to work. No problem. The patterns are self evident and true. They will
spread. And, as a result, the world of buildings will get better. Hey presto.
But it hasn’t yet worked out like that. In practical terms, so far, I've
done almost nothing. The pattern language, how much has it influenced the
environment of the world. A few thousand buildings have been influenced.
There are a few people that have lived a few things and been influenced.
But, meanwhile, we've still got this gigantic amount of construction out
there which is defining the world that all of us live in that is still
going on in exactly the same fashion. I believe that the cultural process
of influence is simply too slow to be able to take care of this problem.
In other words, the process by which one discusses these kind of things,
shares ideas about them, gradually influences the way people are thinking
so that gradually larger and larger percentages of bits of the environment
might turn into living structure. That is a very slow process, and I don't
think it is fast enough to do the job. And yet, as an architect, I view
myself as responsible for that. Not of course, alone, but as a professional,
that is my job is to try to understand how we can get hold of that – the
entire structure of built environment, all over Earth -- and do something
about it to make it better.
For several years I have been asking myself how this effort can be expanded,
and strengthened. It must be our aim to make the world’s environment a
living structure, within one or two generations. How, realistically, can
be that be done?
So, today, I am standing before you, thinking to myself...right, I'm now
talking to people who are in a way the core of the computer revolution.
You probably realize, I know you must realize the extent to which the world
is gradually now being shaped more and more and more, indirectly, by the
efforts of all of you who are sitting in this room -- because it is you
who control the function of computers and their programs. It is the programs
that control the shape of manufacturing, the shape of the transportation
industries, construction management, diagnosis in medicine, printing and
publishing. You almost can't name a facet of the world which is not already,
to some very strong degree, under the influence of the programs that are
being written to manage and control those entities or those operations.
And this is still in its infancy. How long has this been really going on?
Not long. About 10 or 15 years, though of course, the preparation for it
goes a lot further back than that. But really this is quite new. It is
going to look a whole lot different, even more powerful in its degree of
And yet, as a professional body, I don't think that you are yet fully aware
of it. I'm probably speaking out of turn here but, you know, I've thumbed
through the proceedings of this conference, for instance. Jim was kind
enough to show it to me yesterday. I don't really see discussion about
What, collectively, are computer scientists supposed to be doing with all
these programs. How are they supposed to help the Earth? And, yet, the
capacity to do that is sitting right here in this room. That is an amazing
situation. You have so much power.… but that means that you also have an
Is there a chance you might take on the responsibility for influencing,
shaping, and changing the environment. Interestingly, I think many of you
do also have the inclination. When I had the pleasure of beginning to meet
some of the various folks who introduced themselves to me over the last
year and a half from the software community, I began to be fascinated by
the number of them that were closet architects. Greg Bryant who worked
on the 486 chip, is really interested in ecology and is an editor of Rain,
an ecological magazine. Bill Joy is writing about workstations in the concrete
physical sense that is familiar as an architect. John Gage, chief scientific
officer of Sun, is interested in neighborhood schools, and in the process
by which people can repair their own physical neighborhoods by working
together. Jim Coplien is dealing with social structures in human organizations.
Mark Sewell from IBM wants to build houses. Dick Gabriel has as his deepest
passion, the writing of poetry: another kind of art. I don't have a long
enough list. But my hunch is that an amazing number of you who got into
this pattern game in the pursuit of your normal professional endeavors
are also very profoundly interested in the real physical world, and its
shape and its design, its deep feeling, its impact on human life. That
is, the world in which we inhabit. It is therefore conceivable that you,
collectively, could change the very drastic situation of a destroyed environment
that I described earlier.
Let me just go back to the structure-preserving unfolding process that
I described in Part B of this talk. I talked about this structure-preserving
When I first constructed the pattern language, it was based on certain
generative schemes that exist in traditional cultures. These generative
schemes are sets of instructions which, carried out sequentially, will
allow a person or a group of people to create a coherent artifact, beautifully
and simply. The number of steps vary: there may be as few as a half a dozen
steps, or as many as 20 or 50. When the generative scheme is carried out,
the results are always different, because the generative scheme, always
generates structure that starts with the existing context, and creates
things which relate directly and specifically to that context. Thus the
beautiful organic variety which was commonplace in traditional society,
could exist because these generative schemes were used by thousands of
different people, and allowed people to create houses, or rooms, or windows,
unique to their circumstances.
When I first hit on the idea of creating, and using, pattern languages,
I was inspired by these traditional generative schemes, and thought that
I was essentially copying them. However, in the huge effort of creating
a believable, new, pattern language, in the 1960’s the effort went entirely
onto the individual patterns (their formulation ,verification etc.), and
the idea that they were to be used sequentially, one after the other, dropped
into the background. In fact, both A Pattern Language and The Timeless
Way Of Building say that the pattern language is to be used sequentially.
In practice, however, this feature dropped out of site, and was not emphasized
in use. As a result the beautiful efficacy of traditional languages and
their simple and beautiful sequential nature, disappeared from view.
In our most recent work, that has changed. We are now focusing on pattern
languages which are truly generative. That means, they are sequences of
instructions which allow a person to make a complete, coherent building,
by following the steps of the generative scheme. We have done this for
houses, for public buildings, for office furniture layout and so forth.
It works. And it is powerful.
Compared to the pattern language that you've seen in A Pattern Language
these generative schemes are much more like what you call code. They are
generative processes which are defined by sets of instructions that produce
or generate designs. They are, in fact, systems of instructions which allow
unfolding to occur in space in just the way that I was talking about a
minute ago (Part B), and are therefore more capable of producing living
structure. The published pattern language by comparison is static. The
new generative languages are dynamic and, like software, interact with
context, to allow people to generate an infinite variety of possible results
– but, in this case, with a built-in guarantee of well-formed results.
The design that is created or generated is guaranteed, ahead of time, to
be coherent, useful, and to have living structure.
You know the pattern language (the one for architecture) consists of these
objects which are interesting and which you somehow try to put together.
But it's possible to have processes or procedures which will go much further,
actually generate living structure. Because of the complexity of the situation
in the world, and because of the way software is going, software that is
designed to do this could very rapidly take the world by storm.
Why would computer scientists and software engineers suddenly become responsible
for the form and structure of the built environment? Is that not the province
of architects, planners, agricultural experts, forestry people, and civil
engineers? It ought to be. But the members of these professions are not
taking responsibility for the generative approach to living structure –
and so cannot produce it. And, as far as I can see, they do not see it
coming, and are not preparing themselves to take it on, mentally or professionally.
Therefore it will fall to someone else to do it instead.
In history, this kind of unexpected switch is a common thing. When a paradigm
change occurs, in a discipline, it is not always the members of the old
profession, who take it to the next stage. In the history of the development
in technical change, very often the people responsible for certain specialty
are then followed by a technical innovation. And then the people who become
responsible for the field after the technical innovation are a completely
different group of people. When the automobile came along, the people who
built the buggies for the horse and buggy did not then turn into Henry
Ford. Henry Ford knew nothing about horse buggies. The people who were
building automobiles came from left field, and then took over -- and the
horse and buggy died off.
It is conceivable to imagine a future in which this problem of generating
the living structure in the world is something that you – computer scientists
– might explicitly recognize as part of your responsibility. Such a change,
representing a kind of a level of marriage between you and me, is of an
entirely different sort from the one that I was invited by Jim Coplien
to contemplate. I was brought here to answer the question “Okay Chris,
what new things have you been doing that might spin off and be useful to
us in our neck of the woods? Parts A and B of this talk were about that.
But this Part C is about something quite different. I want you to help
me. I want you to realize that that problem of generating living structure
is not being handled well by architectural planners or developers or construction
people now, and the Earth is suffering because of it. I believe there may
be no way that they are ever going to actually be able to do it, because
the methods they use are not capable of it. For you it is different. The
idea of generative process is natural to you. It forms the core of the
computer science field. The methods that you have at your fingertips and
deal with everyday in the normal course of software design are perfectly
designed to do this. So, if only you have the interest, you do have the
capacity and you do have the means.
I heard a rumor at breakfast that some of the people in this room have
begun to worry about their jobs. I have no idea if that is true. But I
was told there is an undercurrent of unease as to where all this -- software
design -- is going. There is a huge expanding phenomenon of programming
as an art, and yet an uneasiness about where it is all headed? What is
it going to do?
My comment on this? Please forgive me, I'm going to be very direct and
blunt for a horrible second. It could be thought that the technical way
in which you currently look at programming is almost as if you were willing
to be “guns for hire.” In other words, you are the technicians. You know
how to make the programs work. “Tell us what to do daddy, and we'll do
it.” That is the worm in the apple.
What I am proposing here is something a little bit different from that.
It is a view of programming as the natural genetic infrastructure of a
living world which you/we are capable of creating, managing, making available,
and which could then have the result that a living structure in our towns,
houses, work places, cities, becomes an attainable thing. That would be
remarkable. It would turn the world around, and make living structure the
norm once again, throughout society, and make the world worth living in
This is an extraordinary vision of the future, in which computers play
a fundamental role in making the world -- and above all the built structure
of the world -- alive, humane, ecologically profound, and with a deep living
structure. I realize that you may be surprised by my conclusion. This is
not what I am, technically, supposed to have been talking about to you.
Or you may say, Well, great idea, but we're not interested. I hope that
is not your reaction. I hope that all of you, as members of a great profession
of the future, will decide to help me, and to help yourselves, by taking
part in this enormous world-wide effort. I do think you are capable of
it. And I do not think any other professional body has quite the ability,
or the natural opportunity for influence, to do this job as it must be
I've enjoyed talking to you very much. Thank you for listening to me and
I would be most keen to listen to your ideas on these topics.