Unchanging
Christopher Alexander demanded we raise the practical questions about our
projects—the questions asked by those who must live with the results. Things
change, and people’s lives change, too. Our relationship with space changes
over time, as do the materials we use for construction and the choice of
location we wish to develop. This was the reason the traditional methods of
building and architecture began to fail and what prompted Christopher Alexander
to write
Any patterns we adopt must be part of a process by which those patterns can be reviewed and improved in later years. This is why we should challenge the GoF book[GoF94] in light of our findings about complexity and simplicity. The book requires an update because better solutions to the problems it addresses exist, and those solutions don’t fit into the book’s structure. The update should include warnings about the issues that were found when some patterns were introduced. New solutions replacing old ones must be presented clearly, not overshadowed by a popular but ageing reference.
The need for such a process of review and refinement is why I am not happy about suggesting replacements
for the GoF patterns in this work. I want to introduce the idea of replacing
The patterns of development will change as the languages we use change. Many books showing us how to develop with these languages have already been published. Some programming languages aren’t even upfront with you about the fact that they are languages but they have patterns all the same. For example, who would say developing a Node.js application is the same as writing vanilla JavaScript for a single webpage? And because there are different dialects of these languages, specific patterns have emerged. There are patterns of working within any common language or framework. Popular game engines have their own patterns alongside the idioms. Hardware constraints also lead to patterns. Embedded, high-frequency trading, and mobile development are fertile ground for the emergence of new patterns.
And that is the point. Patterns emerge. They may be eternal forms, but they can also be forms of a transient environment. New patterns may be as discoverable as the processes for multiplication or making rope. Remember, even these patterns were discovered with rational thought and organic matter.
Sorry, the book in which I shall be including them is not yet written.