It is my pleasure to announce that I will hold a 90 minutes
session at the next ACCU conference in Oxford. This session will be part
of this year's special track on patterns. The abstract is provided below:
Revisiting The Visitor: The 'Just Do It' Pattern
A software design pattern is a three-part rule which expresses a
relation between a certain context, a problem, and a solution. The
well-known "GoF Book" describes 23 software design patterns. Its
influence in the software engineering community has been dramatic.
However, Peter Norvig notes that "16 of [these] 23 patterns are either
invisible or simpler [...]" in Dylan or Lisp (Design Patterns in Dynamic
Programming, Object World, 1996).
We claim that this is not a consequence of the notion of "pattern"
itself, but rather of the way patterns are generally described; the GoF
book being typical in this matter. Whereas patterns are supposed to be
general and abstract, the GoF book is actually very much oriented
towards mainstream object languages such as C++. As a result, most of
its 23 "design patterns" are actually closer to "programming
patterns",
or "idioms", if you choose to adopt the terminology of the POSA Book.
In this talk, we would like to envision software design patterns from
the point of view of dynamic languages and specifically from the angle
of CLOS, the Common Lisp Object System. Taking the Visitor pattern as an
illustration, we will show how a generally useful pattern can be blurred
into the language, sometimes to the point of complete disappearance.
The lesson to be learned is that software design patterns should be used
with care, and in particular, will never replace an in-depth knowledge
of your preferred language (in our case, the mastering of first-class
and generic functions, lexical closures and meta-object protocol). By
using patterns blindly, your risk missing the obvious and most of the
time simpler solution: the "Just Do It" pattern.
--
Resistance is futile. You will be jazzimilated.
Scientific site:
http://www.lrde.epita.fr/~didier
Music (Jazz) site:
http://www.didierverna.com
EPITA/LRDE, 14-16 rue Voltaire, 94276 Le Kremlin-Bicêtre, France
Tel. +33 (0)1 44 08 01 85 Fax. +33 (0)1 53 14 59 22