1.0.1. Christopher Alexander and Design Patterns
From the book:
An architect is a person who plans, designs, and reviews the construction of buildings. Their finished product is hard to change as it is literally poured in concrete. Software changes all the time, even many years after installation, so it is surprising just how much architect Christopher Alexander’s 1977 book A Pattern Language: Towns, Buildings, Construction has influenced the software industry. Alexander’s book is about the timeless way of building. He distils habitat patterns that have repeatedly occurred throughout history — for example, pattern number 159, called “Light on Two Sides of Every Room”. We can easily visualize the pattern because of its descriptive name.
In the 1990s, the software industry took the principles that Alexander proposed and applied them to software design. The concept of object-oriented design patterns was immortalized in Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. These four authors are commonly referred to as the Gang of Four or simply the GoF.
A design pattern is a general solution for a common problem in computer programming. It is usable across most languages and describes the interconnections between objects in a language-agnostic way.