What makes people skeptical about patterns? Could it be that there are too many KindsOfPatterns? Or is it the sudden PatternHype?
''New ideas go through stages of acceptance, both from within and without. From within, the sequence moves from "barely seeing" a pattern several times, then noting it but not perceiving its "cosmic" significance, then using it operationally in several areas, then comes a "grand rotation" in which the pattern becomes the center of a new way of thinking, and finally, it turns into the same kind of inflexible religion that it originally broke away from. From without, as Schopenhauer noted, the new idea is first denounced as the work of the insane, in a few years it is considered obvious and mundane, and finally the original denouncers will claim to have invented it''.
...AlanKay, "The Early History of Smalltalk", ACM SIGPLAN Notices, Volume 28, No. 3, March 1993. p. 70
(Your thoughts here)
The critique probably has two tiers: patterns qua patterns, and patterns as a literature. The first problem: go back and do the appropriate scholarship of Alexander and figure out what he really had in mind and how it might relate to technology in the larger sense. This is normally what people do when they want to carry out an inter-disciplinary study--they take the time to actually read the source documents and study them in-depth. Ralph told me few people have even read "The Timeless Way," which Alexander says explicitly is the actual guide-book, the manual for making and sharing patterns. Not a confidence builder, is it? If you think about it, anything as all encompassing as Alexandrian "patterns" have probably showed their faces before in literature, art, science, right? So where are these historical connections? And who is willing to look for them? This work should have come first, instead of rushing ahead to apply a few tidbits to the tasks of programming.
This is ridiculous -- people do NOT have to study and understand the entire history of a tool, technique, or idea before applying it. I'm not saying there wouldn't be some value to that; I sometimes try to look into the background, when I have time and it interests me. (I have looked at A Pattern Language, although I didn't read it cover to cover.) And I'm glad that some people like to do that and help the rest of us keep long-term perspectives in mind. I'll even go so far as to say that skimming the surface of an idea too quickly and applying without understanding all of the implications can lead to a variety of problems. But I won't accept that software engineers should not have borrowed some of the concepts and ideas of architectural patterns without a rigorous study first. There were clear parallels and GoF ran with it, and thank goodness they did -- design patterns were overdue in software.
Then there is the issue of heuristics, which bothers Kent not at all. In discussion with him I tried to explain how dangerous it is to build a house of cards on heuristic explanations--but he responded that it didn't matter.
The heuristic problem comes about because patterns are supposed to be "the solution of a problem in a context." Now, if you define your own context, you are then free to create the solution which best fits your needs, when in fact, (some of us think) solutions are supposed to be based on little unmentioned items called "objective facts." Objectivity is supposed to be a universal. Alexander has things to say on this subject, but you would have to read The Timeless Way closely to find out what and where.
Second tier: Patterns as a new lit (in the style of the Gang of Four).
Is there a need for a new documentary style of literature, in order to master the transmission of dynamic morphological relationships? Answer: highly unlikely, I'm sorry to say. The "new literature" proponents argue the known forms are insufficient to share patterns. I suggest this view may reflect an inadiquate working knowledge of the available forms.
It may sound a bit harsh, but I find Alexander's pattern form (speaking here strictly as literature) incredibly boring both to read and to try and write. You might think a man obsessed with bringing towns to life, would also write in a spritely and enlivening way and bring his descriptions alive as well. I suggest the "pattern forms" which have been tried (including Alexander's) are failures--not because they fail to get across the point, but because they are boring to read, and good writing never has this quality. The single bright light on the horizon: Kent's story form, which at least lacks the pretentious formalism the patterns are currently soaked in.
As a software engineer, I couldn't care less about the literary value of a design pattern. It is a tool, reference material, and it helps me design good software. I'm sorry if you find it "boring." Perhaps you should become a professor of literature somewhere...
But there are even more interesting literary forms, and no one I know of has even bothered to explore them in the context of software design. So much for a new literature.
Regards,
Dave (no, I am not IBMDave) Smith
9/1/95
"What I found lacking in the site (this wiki) was the boring fundamentals that made the Alexander book so fascinating." see AccessibleFundamentals.
Please note: daves@terracom.net != DaveSmith.