Saturday, January 22, 2005

Gang of Four: No Immediate Plans for Second Edition of Design Patterns

GoF Member Says Time May Be Right for Design Patterns Second Edition
by Glen Kunene, Senior Editor, DevX, January 18, 2005

The question John Vlissides is most asked about the landmark book Design Patterns: Elements of Reusable Object-Oriented Software that he and his colleagues wrote more than a decade ago is: when is the second edition due out? Readers clamoring for another edition of a book that has become a perennial bestseller for its publisher is not something Vlissides could have anticipated when the book first took shape.

The 1994 publication of Design Patterns was the culmination of the expertise and contributions of Vlissides, Erich Gamma, Richard Helm, and Ralph Johnson, four computer scientists (better known today as the Gang of Four) who Vlissides says brought together the best of both worlds: academic research and real-world experience:
  • Vlissides was a consultant during grad school at Stanford before leaving for IBM Research.
  • Gamma built ET++ (a UI toolkit and programming environment) in the late '80s, and his dissertation described the patterns he discovered.
  • Helm built programming tools at IBM Research (where he and Vlissides later teamed up).
  • Johnson was involved with Smalltalk since graduate school and conducted work on design patterns as a professor at the University of Illinois.
He explained that practitioners had the experience building large systems yet were bound to strict project deadlines, while academics had more time to study large systems but had limited resources. The Gang's ability to draw from the benefits of each helped vet design patterns from theoretical, academic research to practical solutions (because, as Vlissides puts it, "A pattern isn't just an algorithm."). "That's where the real work lies," he explained, "because the average academic has no clue what the practitioner's problems are in the real world."

In his consulting experience during the late '80s and early '90s, Vlissides was confronted with practitioners' problems at every project. He noticed clients using objects to solve the same kinds of problems over and over again. In those early days of object-oriented (OO) programming, most people were uncomfortable with the mechanics of object technology (polymorphism, encapsulation, etc.) and left it to their project leaders to think in those terms. Although smart, Vlissides says these project leaders also were dangerous: "They understood enough to make over-complex object solutions."

Because the Gang had been developing OO systems since the mid-'80s—participating the annual Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) conference throughout the late '80s—they were in a position to formalize the most common object solutions, which could then be given to these project leaders. These so-called design patterns would keep them from reinventing the wheel and overcomplicating their solutions.

They recognized the design pattern's two-pronged benefit as a vehicle for standardization. First, it would enable people to "reuse successful design successfully." Vlissides says, "For a while I thought that was the main benefit."

But there was a second benefit: design patterns engendered a standard vocabulary that enabled architects to discuss design at a higher level. Vlissides now believes this standard vocabulary is the most valuable benefit of design patterns and its main contribution to OO programming. Design patterns, he said, "enable a discourse that wasn't possible previously."


Post a Comment

<< Home