--- drieux <[EMAIL PROTECTED]> wrote:
> But I am soooo not sure that the history will help the discussion,
> in part, since the 'meme' has drifted and gained a sense of
> orthodoxy all out of proportion to the underlying argument
> as you note with:

drieux,

"Design Patterns" were originally a tool to provide a common language.  If the current 
discussion
of MVC differs significantly from the original (historical) implementation of MVC as 
described by
the Gang of Four, then we're going to have a problem if programmers do not understand 
this
distinction because a "common vocabulary" no longer exists.
 
In other words, we can't use common terms if we don't realize that our definitions 
differ.  For
example, arguing over whether or not "change" is important is pretty silly if I don't 
realize that
I am talking about a verb and the other person is talking about a noun :)

Which brings me to my next point:

> Unfortunately, at this point in history, I fear you are being
> a bit optomistic that "Design Patterns" were intent upon
> providing a common 'vocabulary'

(Disclaimer:  like so many others who cite the Alexander book, I've not actually read 
it.  I'm
referring to the description by M. J. Dominus.  I trust that he knows what he's 
talking about.)

Design Patterns first appeared in a book by Christopher Alexander (though I don't 
believe he used
the phrase "Design Patterns").  This book was named "Pattern Languages" and it was 
about providing
a common language for basic architectural designs
(http://perl.plover.com/yak/design/samples/slide011.html).

Did the Gang of Four intend to borrow the concept of naming, or did they decide that 
Design
Patterns were these concrete things to be handed down and slavishly worshipped?  
Here's part of
how *they* describe Design Patterns:

  "A design pattern systematically names, motivates, and explains a 
  general design that addresses  a recurring design problem in object-
  oriented systems."

In short:  GoF patterns provide a common vocabulary, just as the original Alexander 
book intended.
 Mind you, some think that the intention of the GoF was simply to hand out code 
samples and say
"you must do it this way".  If you read DP, the authors make it clear that there are 
good and bad
points to every pattern.  The point of the book was to give some good strategies for 
problems and
give names to those strategies.  Today, I can quite comfortably suggest to a 
programmer "use a
factory pattern" and they'll slap their forehead when they realize how it solves their 
problem.  I
do not have to hand them code and say "do this".  Naturally, this presupposes that the 
programmer
knows what a factory is.

But what happens when I say "use an MVC pattern"?  The programmer might say "but I'm 
writing a CGI
script and I don't have multiple Views and Controllers that need to by synchronized 
and updated." 
If I didn't know the problem space that MVC was applied to in the book I might be 
scratching my
head over that one.

For some interesting thoughts, go read Dominus' presentation on the topic
(http://perl.plover.com/yak/design/).

I, however, am pretty much done here.  I have work to do :)

Cheers,
Ovid

=====
Silence is Evil            http://users.easystreet.com/ovid/philosophy/indexdecency.htm
Ovid                       http://www.perlmonks.org/index.pl?node_id=17000
Web Programming with Perl  http://users.easystreet.com/ovid/cgi_course/

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to