Picture of stu

Neologisms for pattern

  • Posted By Stuart Halloway on November 16, 2006

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:

  1. An invisible pattern is so much part of your language that you do not perceive it as a pattern. For example, “Encapsulation” is not a pattern in Java.
  2. A formal pattern has an explicit library or macro realization, e.g. Ruby’s Observable.
  3. An informal pattern is not captured by the language.

Far too many pattern enthusiasts relish informal patterns, when we should be trying to convert them to formal or invisible ones.

Comments
  1. year3165@blogs.relevancellc.comNovember 27, 2006 @ 04:07 PM
    pig Content-Type: multipart/alternative; boundary=df5cade4f2e08416129d3e60b1354629 X-Mailer: Ximian Evolution 1.0.5.99 Subject: he bcc: sirjudge@aol.com bcc: jake867@aol.com bcc: unser2@aol.com bcc: phineau@aol.com bcc: topcopl2@aol.com bcc: poochiemaria1@aol.com bcc: arlettie14@aol.com bcc: kittybrand1969@aol.com bcc: mantanceman2001@aol.com bcc: homerchey@aol.com This is a multi-part message in MIME format. --df5cade4f2e08416129d3e60b1354629 Content-Transfer-Encoding: 7bit Content-Type: text/plain rilling has none of these problems, as the heat does not come from surface contact. n fact, the white edges of back bacon curl toward the overhead flame --df5cade4f2e08416129d3e60b1354629 Content-Transfer-Encoding: 7bit Content-Type: text/plain or mop it off rashers with paper towels. n the other hand, much of the flavour comes from the fat --df5cade4f2e08416129d3e60b1354629-- .
  2. year3165@blogs.relevancellc.comNovember 27, 2006 @ 04:15 PM
    pig Content-Type: multipart/alternative; boundary=df5cade4f2e08416129d3e60b1354629 X-Mailer: Ximian Evolution 1.0.5.99 Subject: he bcc: sirjudge@aol.com bcc: jake867@aol.com bcc: unser2@aol.com bcc: phineau@aol.com bcc: topcopl2@aol.com bcc: poochiemaria1@aol.com bcc: arlettie14@aol.com bcc: kittybrand1969@aol.com bcc: mantanceman2001@aol.com bcc: homerchey@aol.com This is a multi-part message in MIME format. --df5cade4f2e08416129d3e60b1354629 Content-Transfer-Encoding: 7bit Content-Type: text/plain rilling has none of these problems, as the heat does not come from surface contact. n fact, the white edges of back bacon curl toward the overhead flame --df5cade4f2e08416129d3e60b1354629 Content-Transfer-Encoding: 7bit Content-Type: text/plain or mop it off rashers with paper towels. n the other hand, much of the flavour comes from the fat --df5cade4f2e08416129d3e60b1354629-- .
  3. may7112@blogs.relevancellc.comNovember 27, 2006 @ 04:15 PM
    may7112@blogs.relevancellc.com