Jim Weirich is here at the Rails Edge talking about design patterns. As he and many other people have pointed out, design patterns are language specific. In sufficiently expressive languages, many design patterns become library calls or disappear entirely. For example, does Iterator
deserve to be a design pattern in Java? There's an interface for it, after all. Many design patterns have direct library representations in Ruby: Singleton
, Observable
, Enumerable
, etc.
Quite a while back, Peter Norvig proposed some terminology to deal with the gradual disappearance of certain patterns:
Observable
.Far too many pattern enthusiasts relish informal patterns, when we should be trying to convert them to formal or invisible ones.