Patterns are the recurring solutions to the problems of design. People learn patterns by seeing them and recall them when need be without a lot of effort. Patterns link together in the mind so that one pattern leads to another and another until familiar problems are solved. That is, patterns form languages, not unlike natural languages, within which the human mind can assemble correct and infinitely varied statements from a small number of elements.
The Portland Pattern Repository holds such elements. We collect solutions to recurring problems found in computer programming. Each solution is written as a stylized essay, most in the Portland Form. Some are linked into languages. All address the design of computer programs. We are a part of a larger exploration that finds its focus in the PLoP conferences and in the object-oriented programming community in general. We hope you find the documents useful and the form intriguing.