Summary of Patterns of Software

Esta página en español

Patterns of Software is an excellent book with essays about software, programming languages, and Alexander's theories as applied to software. It has a foreword written by Alexander himself; in it he describes his surprise at finding out that he is a household name in the world of software, unlike the world of architecture.

Alexander's theories and software

The first part of the book, titled precisely "Patterns of Software", describes Alexander's theories from the viewpoint of software, but it is an excellent introduction to Alexander in general. This is the part of the book that will be of most interest to students of Architecture and Urbanism.

This part of the book concerns itself a lot with "piecemeal growth": gradual, step-by-step evolution of big systems — as it would be for cities or buildings as for software.

I think Gabriel's main moral of the story that "the quality without a name" is basically what Alexander says:

It is a subtle kind of freedom from inner contradictions.

That is, the virtue of Alexander's process of design and construction, both for architecture/urbanism as for software, is that it can result in systems/cities/buildings that have no inner contradictions, where everything looks and works and is used harmoniously, that have a way of continuing to evolve instead of staying as static monuments.

The failure of pattern languages

There is a chapter in the first part of the book, "The failure of pattern languages", that is particularly interesting. It talks about why Alexander was not satisfied with the first part of his oeuvre, the books The Timeless Way of Building and A Pattern Language. The chapter talks about how architects right after Alexander's time used his pattern language, but produced buildings that were not much different from the rest of modernist architecture. It also talks about the first pattern languages for software, which describe certain ways of writing or structuring the software, but that don't give a complete vision of what the "quality without a name" would be for a software system.

The beginnings of The Nature of Order

Another chapter of the first part of the book is "The Bead Game, Rugs, and Beauty". Alexander used to collect handmade Turkish tapestries with religious, geometric motifs. He did this in an innocent way, without relation to his work on architecture, but someone made him see that the rugs he collected indeed had something very much like him. Little by little Alexander figured out that the colored motifs and geometries in his rugs generated precisely the kind of environments that he wanted to generate in his buildings. One could analyze a rug in strictly in geometrical terms and obtain a "degree of spirituality" for the rug, which matches well with the value which rug experts may place on it.

The micro-structure of rugs is in the colored threads and the way they are woven and tied. The macro-structure is in the geometric patterns formed by the threads, and in their color combinations. Both of those, the micro and macro structures, are precisely the properties that Alexander wants to generate in his buildings.

Alexander used his studies on rugs as the geometrical foundation for the next stage of his oeuvre, the four volumes of The Nature of Order.

The rest of the book

The rest of the book may not be of much interest to students of Architecture and Urbanism. It deals with software development, philosophical aspects of programming languages, and with the personal history of Richard Gabriel and the company he founded.