Most Helpful Customer Reviews
|
|
24 of 32 people found the following review helpful:
4.0 out of 5 stars
Transition legacy systems with multi-paradigm design, May 8, 2000
In the programming world, the word paradigm is simultaneously over and under used. It is under used in the sense that in this field, the conventional wisdom changes with the announcement of each new next big thing. Fortunes are made and lost in a matter of hours, based on a cycle of "revolutionary" new ideas. However, it is sometimes over used when referring to a specific programming language. I must confess that while it is clear that C++ is a very flexible language that allows for many different approaches, I was skeptical when I read the title of this book. I tend to define the term paradigm to mean more significant differences than others do. However, only a short while into the book, I realized the sense of the approach the author has taken. The majority of software projects are not constructed anew, but are legacy systems that need to be updated. In almost all of those cases, this would involve multi-paradigm development, as it is a rare occasion indeed when legacy technology would be used to manage the updates. In fact, the tools and expertise may no longer exist. Even in those cases where there is a complete rewrite it is necessary to understand the old paradigm, so there is no fundamental difference from the update. In reading this book, I was struck with many thoughts about how practical the authors approach is. He argues for C++ by emphasizing that it is a language capable of supporting many different approaches, sometimes even simultaneously. I regularly teach experienced programmers the basic concepts of object-oriented programming , and this gives me firsthand experience in seeing the difficulties in making the paradigm shift. I gleaned a few new approaches from this book that I believe will help make the transition easier. The problem with learning new tricks is often because we know so many old ones. If we can intersperse the old and the new, transitions are easier, and this book will help you successfully perform the mixing.
|
|
|
11 of 14 people found the following review helpful:
5.0 out of 5 stars
An outstanding contribution to software design philosophy!, September 15, 1999
The author tries to bring back together different ways of thinking (aka paradigms) and succeeds. You will never see analysis and design the same way after reading this book. He showed me what generic programming (C++ templates) and OO have in common. Even if you don't use C++ in your day to day tasks, you can benefit from reading this book. Thanks Mr Coplien.
|
|
|
5 of 6 people found the following review helpful:
5.0 out of 5 stars
Cure for Crank Suffrage, November 11, 2006
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.
|
|
|
Most Recent Customer Reviews
|