Rachel Davies points to A history of patterns on the c2 wiki, which reminds me of something I have been ruminating over for the past month (and now I might be ranting ). The history on that page ends in 1999. What happened to Design Patterns since then? So far, I am somewhat disappointed about the effect Design Patterns has had on software development practice.
Design Patterns have had a positive effect, in that they facilitate communication amongst programmers, by giving them a common verbiage. They can use words like Composite or Decorator to abstract complex software structures and behaviour. I haven’t seen many pattern languages for programmers and users (or, to stretch the building metaphor a bit further, inhabitants), like e.g. Tools and Materials, as Alexanders’ ‘A Pattern Language’ does. The use of patterns in practice seems limited to the catalogue in the Design Patterns book – most programmers that use Design Patterns don’t seem to bother reading Alexanders’ books or the PLOP (Pattern Languages Of Program design) series.
On the pattern languages side, I was hoping that something like ‘Domain Driven Design’ by Eric Evans might bridge the gap between programmers and inhabitants. These comments on bookshelved lead me to believe patterns were merely used for the format, not the spirit of the book (I have yet to read it for myself to make up my mind).
It is possible, that I’m just being impatient, and patterns are not disappearing as just a fad. If so, they are likely to reoccur again. The use of patterns is probably ancient, as this example How “Pattern Books” Fueled England’s First Speculative Real Estate Market shows there where pattern books around 1600 explaining how the real estate markets worked.
Maybe after the first flurry of lets’ describe everything in pattern form, we might yet see some actual pattern languages (rather than mere pattern vocabularies) for use by all inhabitants of software.