Pattern Languages in Programming and Interface Design

Notes on pattern languages and Christopher Alexander's legacy on software programming

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.

Languages like

for collaborative learning and for digital screens are examples of pattern languages working out in the wild.

The history of pattern languages

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

Alexander was an architect and urban planner working on building cities and homes condusive to harmonious living.

Pattern languages in programming

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 about to 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?"

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

Pattern languages in interface design and design systems

Want to share?