"Design Patterns" in Dynamic Languages

Java, Programming, Ruby
Location: Meeting Room J1/J4
Average rating: ****.
(4.11, 9 ratings)

The Gang of Four book was actually 2 books: a nomenclature describing common software problems and a recipe book for solutions. The vocabulary they defined is still useful. The recipes are a disaster! Dynamic languages (like Groovy and Ruby) have powerful meta-programming facilities far beyond statically typed languages. It turns out that many of the structural design patterns in the Gang of Four book and beyond are much easier to solve with meta-programming. This session compares and contrasts the “traditional” approach of design patterns with a more nuanced meta-programming approach. Using language features creates cleaner abstractions with fewer lines of code and little or no additional structure. This session shows one of the many reasons that dynamic languages are such a hot topic.

Photo of Neal Ford

Neal Ford


Neal Ford is Software Architect and Meme Wrangler at ThoughtWorks, a global IT consultancy with an exclusive focus on end-to-end software development and delivery. He is also the designer and developer of applications, instructional materials, magazine articles, courseware, video/DVD presentations, and author and/or editor of 6 books spanning a variety of technologies, including the most recent The Productive Programmer. He focuses on designing and building of large-scale enterprise applications. He is also an internationally acclaimed speaker, speaking at over 100 developer conferences worldwide, delivering more than 600 talks. Check out his web site at http://www.nealford.com. He welcomes feedback and can be reached at nford@thoughtworks.com.

Comments on this page are now closed.


Picture of Mark J. Levitt
Mark J. Levitt
12/07/2009 3:55am PST

@Matthew that link looks like it’s working fine (now, at least).

Picture of Matthew McCullough
Matthew McCullough
12/07/2009 1:47am PST

In the “Presentation File:” link of this article, the URL is broken and leads to en.oreilly.com/oscon2009/pu...

The correct link is: assets.en.oreilly.com/1/eve...

Picture of Mark J. Levitt
Mark J. Levitt
07/28/2009 4:20am PDT

@Howard a PDF of the slides is linked above, and here.

Picture of Craig Russell
Craig Russell
07/27/2009 8:21am PDT

Just a quibble. Your first example (Iterator) needs an update.

Java now has a native implementation of Iteratable that allows any collection or array (List, Set, Employee[]) to be iterated with a simple for (Employee: myEmployees) statement.

So Groovy and Ruby have nothing obviously better than Java for iterating these containers.

Picture of John Woodell
John Woodell
07/24/2009 12:51pm PDT

Neal does such a great job showing killer features from both Groovy and Ruby.

Picture of Howard Abrams
Howard Abrams
07/24/2009 4:24am PDT

Can you post your slides? Quite enjoyed the talk, and would love to point people to it.

  • Intel
  • Microsoft
  • Google
  • SourceForge.net
  • Sun Microsystems
  • Facebook
  • Gear6
  • Kaltura
  • Liferay
  • MindTouch
  • MySpace.com
  • Novell, Inc.
  • Open Invention Network
  • Rackspace Cloud
  • Schooner Information Technology
  • Silicon Mechanics
  • Symbian Foundation
  • Twilio
  • WSO2
  • Yabarana Corporation

Sponsorship Opportunities

For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at scordesse@oreilly.com

Download the OSCON Sponsor/Exhibitor Prospectus

Media Partner Opportunities

Download the Media & Promotional Partner Brochure (PDF) for information on trade opportunities with O'Reilly conferences or contact mediapartners@ oreilly.com

Press and Media

For media-related inquiries, contact Maureen Jennings at maureen@oreilly.com

OSCON Newsletter

To stay abreast of conference news and to receive email notification when registration opens, please sign up for the OSCON newsletter (login required)

Contact Us

View a complete list of OSCON contacts