Pattern Languages

Unless you’ve been asleep, you will have noticed the spread of Christopher Alexander’s pattern theory through computing. In The Origins of Pattern Theory: The Future of the Theory, And The Generation of a Living World (a talk given in San Jose, California, at the 1996 ACM Conference on Object-Oriented Programs, Systems, Languages and Applications (OOPSLA)) he reflects on the theory and how it has taken root in computing.

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.


The uptake of pattern theory in software design raises a host of interesting issues:

  • How and why did pattern theory cross so effectively from architecture to computing? How do theories in general cross disciplines? (See Foucault, Archaeology of Knowledge.)
  • Is the turn to pattern theory another turn to essentialism – the search for depth, commonality, essence in the face of complexity?
  • Is the moral dimension to Alexander’s pattern theory essential?
  • Are there abstract patterns of patterns – philosophical patterns if you will?