A book packed with a rich collection of excellent material, but one that demands a great deal of study. With regret I think that the writing in most cases is a hindrance to understanding.
This is the third in an ongoing series reporting on the discoveries of those researching the subject. One of the features of 'Patterns' is that they are extracted from existing work. You should not sit down and decide that you are going to invent a pattern, that is exactly the wrong way. What those working in this area do is note that a particular type of design problem has a well-established solution that has been 'discovered' in several environments. Unfortunately there are quite a few writers who think they can (and should) invent patterns.
This series largely avoids this trap because the contributions come from those that are close enough to the origins of the work to understand what they should be doing. On the other hand I think that we are beginning to reach a point where some caution should be exercised. I very much doubt that there are enough as yet undiscovered patterns to justify one annual conference on the subject let alone two. Their continuation will tempt contributors to seek out ever more obscure patterns. These will be of progressively less use. I think we are approaching the point of diminishing returns.
The problem with this excellent series of books is that they are written in a stilted jargon that is so beloved by the exponents of patterns. This makes them difficult to read, much more so than necessary. Of course the members of the pattern community have little difficulty but for patterns to fulfil their potential they must be understood and be accessible to many more.
The contributions in this book are first generation (in other words the patterns are being written about by their discoverers for people at their level of expertise). What we need now is some second or even third generation material. Let me give you an analogy. Very few people ever understood Einstein's original papers on Special and General relativity. Rather more could understand Arthur Eddington's explanation. That was still for specialists but the keen enthusiastic young mathematics student could get a grasp of it (I know because I was such a youngster - I even got caned for reading it when I should have been doing my Maths prep). The more recent texts on the subject are aimed at the intelligent layman. The theories have not changed but the focus has shifted from creative mathematical skills to communication of ideas.
This book and its predecessors should be the subject matter for articles and books aimed at making the subject matter more approachable to journeyman programmers. The jargon needs to be stripped away so that the material will enter the mainstream of software development.
A book packed with a rich collection of excellent material, but one that demands a great deal of study. With regret I think that the writing in most cases is a hindrance to understanding. I would love to run a (long) series on patterns written for the average journeyman programmer because if patterns have anything to offer it is to such people. Any takers?