History of Patterns

See Coplien's "History of Patterns" for a more detailed description.

Alexander

The origins of design patterns is often attributed to the achitect Christopher Alexander. In his book The Timeless Way of Building (Alexander79 p.247), he defines patterns as:
Each pattern is a three-part rule, which expresses a relation between a certain context, a problem, and a solution.

As an element in the world, each pattern is a relationship between a certain context, a certain system of forces which occurs repeatedly in that context, and a certain spatial Configuration Which allows these forces to resolve themselves.

As an element of language, a pattern is an instruction, Which shows how this spatial configuration can be used. over and over again. to resolve the given system of forces, wherever the context makes it relevant.

The pattern is, in short, at the same time a thing, which happens in the world, and the rule which tells us how to create that thing. and when we must create it. It is both a process and a thing; both a description of a thing which is alive, and a description of the process which will generate that thing.

Ward and Kent

Ward and Kent are generally crediting with applying Alexander's ideas to software design (1987).

Gamma

Erich Gamma completed his doctoral thesis on programming patterns at the University of Zurich in 1991, and subsequently got together with Richard Helm, Ralph Johnson, and John Vlissides to produce the book, Design Patterns: Elements of Reusable Object-Oriented Software (Gamma et al 1995) in 1995.

PLoP

The first PLoP (Pattern Languages of Programming) conference occured in 1994.