Professional PHP

PHP Programming, Web Development, PHP Advocacy and PHP Best Practices.
« Podcast interview with Andi Gutmans
Hump Day Blues »

The Evolution of Design Patterns

January 31st, 2006

Rebecca Wirfs-Brock suggests that it may be time for the GoF Design Patterns book to be refreshed. She points out that the C++ and graphics programming examples may be less relevant to today’s C# and Java programmers. She implies that state of the art has advanced in the twelve years since the book was written. She also suggests that the GoF authors may have made some of the wrong tradeoffs when they specified some of the patterns.

I know I would like to see an update to this groundbreaking work with more modern interpretations of what have become the canonical patterns.

Rebecca talks about how the interface type has come to replace the C++ abstract class. One area that I am interested in is how Duck typing may replace the interface construct in many of the classic patterns. I’m not sure that patterns intended for statically typed languages such as C++ and java necessarily have the same implementation in dynamically typed languages, such as smalltalk, Ruby and of course, PHP.

For the last few weeks, I’ve been doing an interesting educational exercise. I’ve been simultaneously reading Design Patterns, Refactoring, Refactoring to Patterns, and Agile Software Development. I’m finding the cross-referencing between each of these highly complementary books to be be educational. I’m hoping to add Design Patterns Smalltalk Companion and PHP|Architect’s Guide to PHP Design Patterns (Jason Sweat’s book) to get a more dynamic perspective in the mix. This is my reading project for the next few months.

That 10 years after first reading the Design Patterns book, i am still studying from it shows how much of a classic this book has become.

categories Agile Methods, PHP, Software Design
tags books, design-patterns, dynamic-typing

Related Posts

  • php | tek Wrapup
  • Harry Fuecks, PHP Patterns and Dynamically Typed
  • A Comparison of the PHP and Java Job Markets
  • Design Eye for the Usability Guy
  • API Design
You can leave a response, or trackback from your own site.

3 Responses to “The Evolution of Design Patterns”

  1. #1 Alex Knaub responds...
    January 31st, 2006 at 3:16 pm

    Design Patterns are workarounds for broken languages like Java and, sorry, PHP. Have a look at http://www.norvig.com/design-patterns/ppframe.htm and http://www.sitepoint.com/blogs/2006/01/16/design-patterns-in-dynamic-programming/

    In Smalltalk, Lisp, and Ruby you don’t need any Patterns, they are in the language.

    In PHP you cannot implement a Factory-Pattern (http://blog.joshuaeichorn.com/archives/2006/01/09/zactiverecord-cant-work/) you *must* use Java-like workarounds (http://www.phppatterns.com/docs/design/the_factory_method)

  2. #2 Anon responds...
    March 10th, 2006 at 2:39 am

    simply put you cannot change design patterns (GoF) as to do so would completely negate the knowledge that this book gives you on this subject.

    no one can fault the book, past or present so why ruin an enjoyable read?

  3. #3 Jack Johnson responds...
    April 13th, 2007 at 9:15 am

    I also like using php design patterns. Here is a new site, that I found: http://php-design-patterns.com

    Check it out, it may also be of interest.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

code: use [code=php][/code].

Comment Preview

  • Search

  • Subscribe

    Subscribe All Posts
    Subscribe All Comments
    Subscribe All Bookmarks
    Subscribe with Bloglines Subscribe with My Yahoo Add to netvibes Subscribe in NewsGator Online Add to Google
  • Share This

  • Categories (Home)

    • Agile Methods (14)
    • Mac (14)
    • Misc (16)
    • Open Source (14)
    • PHP (95)
    • Software Design (28)
    • Usability (14)
    • WACT (7)
    • Web Design (20)
  • Recent Comments

    • How to Transfer Mac OS X Application Data between Computers  38
      help, please?, Toby, Secret Santa [...]
    • The Problem with Markup Languages  10
      Wayne Whitty, Aaron Saray, Jack Teese [...]
    • Firefox Extensions for Web Developers  16
      lawyers2, Markus, Mitch [...]
    • PHP 5.1 is out  6
      Pochka, Anal Master, Joey [...]
    • Why is PHP Popular?  24
      downgams.ru, naruzhkas.ru, cablingworks.ru [...]
    • Working with PHP 5 in Mac OS X 10.5 (Leopard)  104
      Iman, irisv, Massimo [...]
    • PHP Development From Java Architects Eye  10
      ebezutyzuba, Bobrila, FelhoBacsi [...]
    • The Legality of Republishing RSS Feeds  16
      Andrew, Matt, Mandi [...]
    • nofollow and comment spam  4
      Tanya, sss, Nataly Marshak [...]
    • The PHP scalability saga continues  6
      uswipyq, 网上购物, Harry Fuecks [...]
    • php | tek 2008  4
      , Saumava, NatureLimit [...]
  • Pages

    • Tags
  • Recent Posts

    • php | tek Wrapup
    • php | tek 2008
    • Sarah Snow Stever
    • Benchmarking PHP’s Magic Methods
    • The Endpoints of the Scale of Stupidity on Video
    • Working with PHP 5 in Mac OS X 10.5 (Leopard)
    • Keywords and Language Simplicity
    • Improved Error Messages in PHP 5
    • Michigan Taxes Graphic Design Services
    • Ruby versus PHP or There and Back Again
  • Archives

    • 2008: May
    • 2007: Jan Feb Mar Apr May Sep Oct Nov
    • 2006: Jan Feb Mar Apr May Jun Jul Oct Nov Dec
    • 2005: Jan Feb Mar Apr May Sep Oct Nov Dec
    • 2004: Apr May Jun Jul Aug Sep Oct Nov
  • Menu

    • Register
    • Log in