[Tutor] The Gang of Four (was: A Book for You and Me)

alan.gauld@bt.com alan.gauld@bt.com
Fri, 6 Sep 2002 17:19:55 +0100


> And "Design Patterns" is written like a college book, 

It is primarily a reference book not a tutorial.
It is a very easy book to use in day to day work 
when you want to look up the details of a pattern. 
Its not a fun book, however...

> book where you get the feeling that the people who wrote it 
> are very, very serious, don't have much fun in life

...when the book came out I went to a seminar on patterns 
by Ralph Johnston one of the GoF. He was charming, witty 
and very informative. I can assure you they ain't stiffs! :-)

> Also, the book is from 1995, and still in 
> the first edition. I would expect OOP has progressed somewhat 
> since then,

The book isn't about OOP its about design patterns. The 
patterns they list are still the most commonly used patterns 
by a long way and nothing has changed. Some new patterns 
have been discovered and the patterns web site describes 
them in the same manner as the book.

> so somebody should sit down and rewrite the whole thing 
> to a) bring it up to date with current developments, 

It already is.

b) humanize the prose, 

That might make it readable but they need to keep 
it concise and precise for referemnce purposes too.

> c) replace the Smalltalk examples with Python. 

Hmmm, a tad biased there methinks :-)

> My suggestion to other amateur newbies is to wait with this 
> book until you keep running up against terms like 
> "Flywheel" and "Factory" and "Mediator" 

Absolutely. This bnook is absolutely NOT for OO beginners. 
It assumes a very good grounding in OO and is aimed at 
designers first not programmers. If you fit the right 
profile then its a must have and you should approach it 
by reading one chapter per day - Johnston's recommendation 
and I agree its a good approach.

> this book is far more in the science section 
> of computer science, 

Nope, its very much in the mainstream of software engineering 
and design in particular. I use it at least once a week.

> going to want to read a whole lot of other 
> stuff before you get to it. 

Absolutely, it's a niche book but fills its niche well.


> it can take 15 pages of robotic prose to 
> explain in very abstract terms what an iterator does, 

Becase they are describing a very abstract concept. It 
may or may not be implemented in an OOP language and 
it may or may not be in a similar scenario to the example 
they give.

> and how amazingly complicated they 
> seem to be to implement in C++.

Their C++ tends to be almost copy book perfect. Its one of 
the things I was very impresssed with, they write code 
that could actually be copied into real projects. 
It takes account of all the special cases
(consts, references etc etc). Very few books provide as well 
written C++ as found there(Herb Sutter's books being notable 
exceptions(sic!))

> "Code Complete" by McConnell first 

Ah, now there is an outstanding book. Everyone who writes 
code owes it to themselves to buy and read this book.

> definitely a "We read Knuth so you don't have to" (Tim Peters in the 
> "Python Cookbook") kind of book. 

I'd probably agree. Its a book aimed at professional 
software engineers grappling with complex problems 
that require complex solutions. It is like the meta 
classes book - if you understand it then you can 
be fairly  that you really finally understand OO!

Alan G.