Multi-Paradigm Design for C++ by Addison-Wesley Professional Title: Multi-Paradigm Design for C++

Purchase Item

Manufacturer: Addison-Wesley Professional
List Price: $39.99
Our Price: $23.48

Customer Reviews:
Multi-Paradigm Design for C++ by Addison-Wesley Professional

Hard to read

I purchase this book because the author is one of the coauthor of the excellent Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series) but I did not like it because I found it hard to read. Some books are hard to read but worth reading because they teach you something. This one is hard to read and I could not make any sense with the book content.
Multi-Paradigm Design for C++ by Addison-Wesley Professional

Cure for Crank Suffrage

Jesus, Amazon reviews are one of the best things about the internet. They have to start changing rating formulations here to discount the rise of corn pone crankery. Giving this one star and saying it is soporific (hint: that's a joke see, as the guy is complaining about use of language and the old mozartean syllable count), is LUDICROUS.

First off, where has this book been hiding? When I first read Coplien's Advanced C++ in 1992, it blew me away. I read and reread it like it was epic poetry (oh wait, that's because, well, it IS). Coplien is everything you want in an author: first, he is literate. Unlike junior who can only hold the book w/one hand (since they took away his pacifier, he has to use his thumb), he has clearly read and digested a LOT of stuff. Science people, too often have zero literary sensibility at all. Funny that the great scientists seemed to. Oppenheimer read in several languages and quoted the Baghavad Gita, Greek scholars, and was into poetry. Anyway, Coplien can also claim to have been, to borrow the Dean Acheson phrase 'Present at the Creation' (though, lucky for Cope, he was there and took part in the birthing of the most important software dev movement in the last 25 years, while Acheson helped cement the modern police state). Finally (on this front), this book is not only readable, it reads like the wind. And believe me, friends, I was almost suckered into believing the whiney tail of my hero's demise.

Now, here are a few more things I'd like to say about this book:

1. I have been reading a lot about PLE lately, and this book plugs into this so well, it's bizarre. For instance, this book takes some serious time to talk about how to do variability analysis, but also discusses things like the mapping of domain variability requirements to language features, the various codifying tools that enable substitution, but also substitution w/variation (e.g. parameterization, virtualization, etc.), but then, in a bonus turn on this vector, he talks about how this meshes with patterns, showing for instance how cases of negative variability (where the deriver wants to erase part of the base) can be refactored to Bridge, etc.

2. Don't get too thrown by the multi-paradigm angle the title implies: this book is not just a screed espousing the use of functional sideshoots, or procedural deviations.

In summary, this is a great book and I can't believe I did not know it existed until recently. If you are doing product oriented development especially, and variation at more than just the simplest level is a daily demand, this is one of the best wells to visit.
Multi-Paradigm Design for C++ by Addison-Wesley Professional

Somewhat Useful if You're Already Well-Read

The main complaint I have with this book is that it's basically unintelligible unless you've already read several thousand pages of other books about design patterns and advanced C++.

The other complaint I have is that if you've already read that much about C++, then you have to wade through a lot of stuff that you've already figured out just to dig up the dozen or so nuggets of new insight. (Admittedly, I'm prejudiced against dissecting methodology, so you might take this view with a grain of salt.)

This book isn't bad, but for the average C++ programmer there's probably a lot of fruit out there that hangs lower than this one. "Design Patterns" (Gamma), "The C++ Programming Language" (Stroustrup), "Exceptional C++" (Sutter) and "The C++ Standard Library" (Josuttis) come to mind.

Multi-Paradigm Design for C++ by Addison-Wesley Professional

Very hard, unrewarding read

I am experienced with C++, however I found this book extremely difficult to read. The author seems to enjoy digressing and building elaborate sentences, but unfortunately this (at least to me) seriously hindered the understanding of the material.

Here and there I would see a great insight, but such insights are very hard to find among all the precious language used. There are no code samples and very little concrete stuff at all. I don't even know to this day what the book has to do with C++. I usually had to read many paragraphs a second time before I figured out their meaning. And, unfortunately, it was more often a trivial fact dressed in oh so nice words, rather than an illuminatory insight.

I just didn't gain anything from reading this book. Sorry.

Multi-Paradigm Design for C++ by Addison-Wesley Professional

a sure cure for insomnia...

I was so excited when I found this book. Large scale application design is HARD! Although I hadn't read any of Mr. Coplien's previous books, his name is prominent in the C++ community.

This book has some interesting ideas but most engineers won't get to them because of the author's fascination with the language. Time and again I found myself re-reading a passage only to discover that he was making a simple point.

Please Mr. Coplien, consult a writer before you write any more. Your text is obtuse, dense, when stating the obvious. S/he would certainly warn you of the dangers of passive voice, a trap in which you're completely mired!

I hope this doesn't violate any copyrights but here are the last two sentences in section 1.8.

[after a discussion of late binding] "Multi-paradigm design doesn't aspire to such reflective solutions; this is largely an issue of practicality and scope. The pattern tie-ins in Chapter 9 are limited to structural commonalities and variabilites that are simple extensions to C++ constructs."

I'm sorry but I, and most of the engineers I've worked with, just don't talk that way. I'd be tempted write something like that if I wanted to be sure that no one would read my paper.

IMHO, Mr. Coplien, if you want a model of how to write something which is readable to those outside of the C++ design community, pattern your prose after any of the following books (which I've found very readable):

- The C++ Programming Language - Stroustrup (Part IV)

- Design Patterns - Gamma, et.al.

- Advanced CORBA programming - Henning, Vinoski