June 01, 2008

Reengineering Patterns

Most people misunderstand the concept of patterns. This is probably mostly due to the Design Patterns book by Gamma, Helm, Johnson and Vlissides, which only conveys parts of what patterns can actually express and what they can be used for. People who know "better" languages know that most of the design patterns in that book can be much easier expressed, such that they virtually go away. However, that's not the "fault" of the patterns concept, that's rather a problem with that book, in that quite boring patterns have been selected.

A much better book is "Object-Oriented Reengineering Patterns" by Demeyer, Ducasse and Nierstrasz. In my opinion, it is probably the best book about (software-related) patterns that has been published so far. The good news is that the book is now freely available for download, so check it out.


Luís said...

I had a course about Design Patterns. I decided to write my project in CL. I followed the design patterns in Norvig's slides and I used ContextL. It was a lot of fun, and I learned a lot.

However, I almost failed the course... The professor was very much unimpressed by my "dynamic" patterns or the discussion I included in my report on how certain language features render some GoF patterns invisible (as Norvig puts it).

Bread Pit said...

While at it I'd recommend "Sublime Stitching: Hundreds of Hip Embroidery Patterns and How-To" (ISBN-13: 978-0811850117).

Well it's got nothing to do with Gamma&friends but so has your recommendation. It's not the word "pattern" enough to place two books next to each other or, worse, prefer one over the other.

We could as well talk about apples and oranges. They are both fruits, after all.