OOPs I need a book
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
>> patterns are signs of language deficiency,
> That sentiment comes directly from the LISP community. It's both
> and wrong. It's right because a more flexible language like LISP lets
> you eliminate the repetition that sometimes arises from design
> 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,
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