This site runs best with JavaScript enabled.

Pattern Languages

Last tended on June 03, 2020
🌱 Seedling


A Pattern Language is a set of flexible, reusable solutions to common design problems.

These patterns evolve naturally within systems, and are found rather than crafted. Identifying and recognising these patterns gives us a framework to craft solutions with.

There is no one way to implement a design pattern – they are purposefully abstract enough that you can apply them to the situation at hand. They're guiding principles instead of formulaic instructions.

Christopher Alexander developed the idea of Pattern Languages in their 1977 book.

book cover

A Pattern Language

Christopher Alexander

The book outlined a number of solutions for architecture and urban planning design, but the theory has since (appropriately) taken on a life of its own.

The programming community picked up on on Christopher Alexander's ideas in the late 1980's.

Despite the original book being primarily about public transportation tempos and cafe sidewalk strategies, the notion of design patterns heavily influenced the development of Object-Oriented Programming languages like Smalltalk and C++.

In a charming presentation at the 1996 OOPSLA conference (Object-Oriented Programs, Systems, Languages and Applications, obviously), Alexander openly admits "I'm address a room full of people and I don't know hardly anything about what all of you do".

Some computer scientist called me and said they had a group of people in Silicon Valley willing to pay $3,000 to have dinner with me... and I thought "What the hell is this?"

Richard Gabriel, an engineer at IBM, was one of the ring leaders actively building these bridges between software and built landscapes.

Want to share?

Join the newsletter

For weekly notes on visual thinking, ethical technology, and cultural anthropology.

Maggie Appleton © 2020