A pattern language, from the world order to the windowsill

A Pattern Language (APL) is one of my favourite books. When I first read it, I was surpriseds that it explained a bunch of things that I already found beautiful in buildings. It’s also an early example of a hypermedia text which can be read non-linearly, like an archipelago of islands connected by bridges.

But one of its most grandiose pretensions, which I really enjoy, is that it takes seriously that architecture is part of society. How seriously does it take this? Here’s the first pattern in the book:

1. Independent Regions**

Metropolitan regions will not come to balance until each one is small and autonomous enough to be an independent sphere of culture. … Therefore: wherever possible, work toward the evolution of independent regions in the worId; each with a population between 2 and 10 million; each with its own natural and geographic boundaries; each with its own economy; each one autonomous and self-governing; each with a seat in a world government, without the intervening power of larger states or countries.

(The ** after the pattern name indicates the authors believe they have discovered a truly fundamental and necessary pattern.)

Want good buildings? Start by reorganising the geopolitical framework of the entire world. Maybe it’s no wonder the pattern language proved impractical.

The book proceeds downards in scale from there, through the layout of settlements within a region and their relationship to the countryside (3. City Country Fingers), the arrangement of neighbourhoods (8. Mosaic of Subcultures) and their connections (16. Web of Public Transportation), streets (49. Looped Local Roads), blocks (38. Row Houses), buildings (107. Wings of Light), rooms (142. Sequence of Sitting Spaces), all the way on down to the details of the windowsills. Pattern 240. Half-Inch Trim** (another double star), lays out the problem thus:

Totalitarian, machine buildings do not require trim because they are precise enough to do without. But they buy their precision at a dreadful price: by killing the possibility of freedom in the building plan.

Along the way, the book detours into aged care (40. Old People Everywhere), industrial relations (80. Self-Governing Workshops And Offices), public service (149. Reception Welcomes You), religion (66. Holy Ground) and nightlife (63. Dancing In The Street). It addresses construction (218. Wall Membranes) and wildlife (74. Animals).

It’s an impossibly broad scope, and I love it. It acknowledges and confronts the interconnectedness of building - how even the smallest project will be influenced by these larger scales.

I wish APL’s imitators had tried to mimic even a fraction of this ambition.

To software:

The core idea of the pattern language which can be used to generate infinitely many works that share common structural qualities was adopted in the software world, to the extent that the most famous of the book’s authors, Christopher Alexander, was invited to speak at the OOPSLA conference in 1996 to a crowd of object-oriented programmers.

Keynote Speech to the 1996 OOPSLA Convention: The Origins of Pattern Theory, the Future of the Theory, And the Generation of a Living World.

The idea of design patterns has inspired many programming works. The most famous is probably the “gang of four” patterns book from 1994. Another is Kent Beck’s “Implementation Patterns” from 2007.

Yet another (rarely discussed as an entry in the “pattern” genre), is the original Domain-Driven Design “blue book” by Eric Evans in 2004. The book explicitly models its chapters after APL’s pattern structure, with a problem statement and solution.

But no work in software that I’m aware of tries to imitate the sheer dynamic range of APL.

No single pattern language could encompass the massive variety of software development - and despite APL’s grandeur, the authors don’t pretend it is the only pattern language that should exist for architecture.

But fundamentally I believe that the economic environment in which code is written dramatically affects the right low-level syntax that should evolve, so explicitly weaving thogether those highest and lowest levels would be fascinating.

Just one example: Alex Russell’s struggle against careless organisational slop in his Reckoning series really reminds me of Alexander et al’s fight with bureaucracy in The Oregon Experiment. A pattern language for web development should address how to generate healthy relationships between the users, the development team, management, and other stakeholders, as well as how not to get Alex to write an entire case study about you.

In software, we get plenty of advice about how to make beautiful windowsills. But we don’t realise how connected that is to the whole world order.