OOPs I need a book

Levi Pearson levi at cold.org
Tue Nov 7 14:36:02 MST 2006

On Nov 7, 2006, at 2:02 PM, Shane Hathaway wrote:
> In particular, you'll find that static typing has a strong effect on
> what people think OOP is.  The canonical Design Patterns book expects
> static typing and thus applies well to C++ and Java, but many of the
> patterns become irrelevant when applied to dynamic languages.  For
> example, in Python, the factory pattern is in a sense built in to the
> language, since constructors and functions are called the same way.

This is not entirely true.  The Gang of Four had one or two hardcore  
Smalltalk programmers among them, and IIRC the Design Patterns book  
has a few Smalltalk examples and mentions the situations where the  
patterns are only required because of the static type system.

>> The examples within are in Java, but the concepts translate fairly
>> easily to C++.   Although some people are saying these days that  
>> design
>> patterns are signs of language deficiency,
> That sentiment comes directly from the LISP community.  It's both  
> right
> and wrong.  It's right because a more flexible language like LISP lets
> you eliminate the repetition that sometimes arises from design  
> patterns.
>  However, another intent of design patterns is to express the  
> design of
> the software to other developers, and that alone has obvious value.

Sorry to be pedantic, but we don't call it LISP anymore.  It was only  
ever called LISP because there weren't any lowercase characters on  
terminals when it was invented!  It's not a proper acronym, so LISP  
is just wrong.  Lisp is the way to name it.

Anyway, it's not just from the Lisp community.  It's more generally  
from the functional programming community, and even from people in  
the Perl community like Mark Jason Dominus (who probably truly  
belongs in all three communities).  But there's still value in  
learning about patterns, because they are often elegant solutions to  
difficult design problems.

Also, here's another candidate book on OO design: Grady Booch,  
"Object-Oriented Design"

It was recommended by Bjarne Stroustrup in an interview I was just  
reading, and Booch has been a huge name in the OO design community  
for a long time, so I imagine it's good.


More information about the PLUG mailing list