It has been 10 years since the seminal publication of the Gang-of-Four Design Patterns book. Since then, at least a dozen major works have followed, each with its own viewpoint, its own set of repeatable problems. Some took on Architecture, others Real Time Systems, and so on.
Now, the goal of the Patterns work was not to create a bunch of noise that dies down. It was to change the way we communicate with one another. The language that we use. The forces that we consider. The patterns themselves, even when not fully understood, can lead us to what Christopher Alexander called “the quality.” A design that is beautiful, elegant, balanced, and completely in context with its environment.
We have the words. We have too many of them. Now, it’s time to make the language.
Will you help me? I’d like to start to create a consensus list. I’d like to answer the question: what are the top 100 patterns and idioms that every developer should learn by the end of their second year of professional practice?
Is 100 the right number? Only by attempting to create the language will we actually know what the right number is. Scientists in other disciplines have settled on common terms for their common field.
It is our turn.
If someone has a suggestion for the best Wiki site to do this on, please reply.
(Please note: I followed this post with a follow-up post that attempts to answer some of the questions from the responses below. See here.)