Revisiting the Visitor: the "Just Do It" Pattern Didier Verna (Epita Research and Development Laboratory, France)

Abstract: While software design patterns are a generally useful concept, they areoften (and mistakenly) seen as ready-made universal recipes for solving common problems. In a way, the danger is that programmers stop thinking about their actual prob-lem, and start looking for pre-cooked solutions in some design pattern book instead. What people usually forget about design patterns is that the underlying programminglanguage plays a major role in the exact shape such or such pattern will have on the surface. The purpose of this paper is twofold: we show why design pattern expressionis intimately linked to the expressiveness of the programming language in use, and we also demonstrate how a blind application of them can in fact lead to very poorlydesigned code. Keywords: Lisp, design patterns, meta-programming, object orientation Categories: D.1.5, D.3.3