Home :: Books :: Computers & Internet  

Arts & Photography
Audio CDs
Audiocassettes
Biographies & Memoirs
Business & Investing
Children's Books
Christianity
Comics & Graphic Novels
Computers & Internet

Cooking, Food & Wine
Entertainment
Gay & Lesbian
Health, Mind & Body
History
Home & Garden
Horror
Literature & Fiction
Mystery & Thrillers
Nonfiction
Outdoors & Nature
Parenting & Families
Professional & Technical
Reference
Religion & Spirituality
Romance
Science
Science Fiction & Fantasy
Sports
Teens
Travel
Women's Fiction
Advanced C++ Programming Styles and Idioms

Advanced C++ Programming Styles and Idioms

List Price: $54.99
Your Price: $47.63
Product Info Reviews

<< 1 2 >>

Rating: 5 stars
Summary: Mind expanding purple book
Review: among freinds we refer to this book as mind-expanding, as, one can't pick it up without having to make room for a new concept and facet each time

Rating: 5 stars
Summary: Well worth many reads, even if 11 years old
Review: Coplien has won many consensus thanks to this book and his "Multi-paradigm design". You can easily verify it looking at the bibliography of EVERY book on C++ written after 1991: you'll certainly find "Advanced C++ Programming Styles and Idioms". Many books have used it to expose tecniques. The best examples are both Meyers' "Effective" and "More effective" books. You can jump directly to the Recommended Readings sections to read the right acknowledgment to Coplien's book. You can then browse the items, and discover that some of them are revisitations and expansions of Coplien's ones).

Reading this book completely changed my view of C++, and, indeed, of any programming language. It traces a clear path that lead from a "normal" use of the language to a well-conscious use of each of his potentialities (those available in 1991, at least). Just look at the functors section to understand what a gem is this book, this is one of the most mind-expanding examples of the book. And if you did not understand what ADT are before, you'll gain a fine and solid account here. This just to quote a couple of examples.

Eleven years are a lot, and the language have undergone major expansions, especially since the ANSI draft on 1996-97. However, this doesn't take anything away from the value of the book, after all you can always learn namespaces from any other modern book. It's not a case that this is one of the most quoted books in the C++ literature.

Many have said it, and I can only confirm that this book should have a stable place on each C++ developer's bookshelf (together with Stroustrup, Meyers, Koeing, Allison and Murray).

Rating: 1 stars
Summary: The worst C++ book I've read
Review: I bought this book because it was in the "recommended reading" section of Scott Meyers's "More Effective C++" and his description of it intrigued me. I'm sad to say this is the first C++ book I've read that I felt was useless. I nearly gave up on it several times, but kept thinking there *had* to be something interesting hiding inside.

The first problem is that it is sorely out-of-date. It was originally published in 1992 and update in 1994 -- still four years before standardization. A lot has happened to C++ since 1994. Understandably, the code examples don't reflect the current state of the language. What's worse is that many examples show poor programming styles and bad implementation details in the interest of "brevity," when more appropriate code wouldn't be much more verbose or difficult to write.

Hardly "advanced," the first half of the book covers basic and familiar language features. Though Mr. Coplien is no doubt and experienced object-oriented programmer, his discussions are too abstract and difficult to follow; most ideas could be more concisely stated in half as many words. The author strikes me as someone more comfortable with higher-level OOP languages like Smalltalk and Lisp, and has been forced to learn (against his will, it seems) how to shoehorn features of other languages into C++. In his defense, he does show appreciation for the strengths and weaknesses of the different languages, and avoids outright C++ bashing.

This is a book manifestly void of any unifying vision. If there was any goal in mind, it appears to have been related to developing dynamic systems that support incremental program updates while executing, rather than anything specifically C++.

It wasn't all bad. His discussion on why procedural design still has a place in OOP near the end of the book was interesting. The high point for me was when he said, "If a process goes insane and needs to be killed..."

Rating: 5 stars
Summary: This book is a mind expanding experience
Review: If you are serious about C++, and have read Stroustrup 3d edition, and Scott Meyer's books,then I would recommend this book as the next step for evening/weekend reading. Don't let the publication date scare you, the coverage is platform neutral, and the concepts are still valid. It is a mixture of conceptual material and source code that shows how to express them. A wonderfull read.

Rating: 5 stars
Summary: A must-have for any C++ programmer
Review: If you do any C++ programming, whether you're a novice or an expert, this book is a definite "must" for your library. This book is not specific to any compiler or operating system, so you can use it no matter what your environment is. But what's most important is that it covers every aspect of C++ programming that's even the least-bit complicated. I've been programming C++ for over five years, and EVERY time I've wanted to figure out how to do something in C++, not only was I able to find a clear description, but sample code as well.

Rating: 4 stars
Summary: Really an "advanced" C++ Book
Review: If you think you know everything about C++ but you have not read this book... then you don't really know everything about C++. It is a *must*, but bear in mind that this is NOT a beginners book but a book for intermediates or higher. Also, this book is not easy to read in the sense that you have to read it carefully and re-reading it several times to get its esence. Not for reading before sleep! It will teach you how to implement things in C++ you'll never dream of (but then: will I use these features? probably not, but it's worth reading). Get it if your C++ level is somewhat high !

Rating: 3 stars
Summary: What's so Advanced?
Review: In the first 150 pages of the book two whole idioms are introduced (and on page 148 a second variant on one of the idioms is introduced). Neither idiom is particularly advanced and if you haven't seen and used them before I kinda have to wonder why you're reading a book with the word "advanced" in the title.

I disagree with the other reviewers that this book is only for intermediate or advanced readers. The first 100+ pages is an extraordinarily boring rehash of basic C++ features. It is obviously targeted at a C++ neophyte. And that's who I think would best be served by this book: someone who is a good programmer, who knows other programming languages, but doesn't know C++. I don't think it moves too fast for a beginner, provided the beginner has a modicum of intelligence and motivation.

As another reviewer pointed out, the book is showing its age and that certainly hurts its usefulness in many respects.

All in all I'd say that if you are a decent C++ programmer with some experience you probably won't find much of value in this book. Even if you do get past the first few hundred pages of boring rehashed material you've read in a dozen other places. If you are new to C++ then you'll probably learn some stuff you didn't know before.

For a book billing itself as being "Advanced", I was let down. In the end I couldn't justify the money or the time invested in reading this book.

Rating: 5 stars
Summary: A dated yet very good book
Review: It is a very good book, although a little dated. It explains a lot of items in <<effective c++>> and <<More effective c++>> in more details, it tells you how to do the things, and why to do in this way.

It discusses many idioms, which are the low level equivalences of patterns (see <<Design Patterns>>), for example, body/handle idiom is equivalent to bridge pattern, examplar is equivalent to prototype pattern, envelope/letter is related to state pattern, ... Orthodox Canonical class form is called "big three" in <<c++ faqs>> ... Overloading subscripting for class File and FileRef on page 51 gives the idea of proxy for distinguishing reads from writes presented in <<More effective c++>>, but <<More effective C++>> gives a more detailed discussion on limitations etc (it's normal since <<More>> appeared much later). It provides interesting discussion about difference of performance between different string implementations (p58 -- p65). It discusses relations between pointer to member functions, functors and virtual functions (2.10 and 5.6), and explains the power of polymorphism. It discusses "Dynamic inheritence" in chapter 10, which is not supported directely in C++ (related to state pattern).

Overall, this book provides a lot of original c++ ideas, which affected the later books as <<(More) Effective C++>> and <<Design patterns>> very much.

It is more like a book, while <<(More) effective c++>> and <<Design patterns>> are more like a reference. It contains exercises (no solutions) at the end of each chapter, while <<(More) effective c++>> and <<Design patterns>> do not.

Some discussions are interesting, but not completely correct (it is understandable because of its publishing year), for example, reference counting to implement string class, when shouldn't we use this idiom and how we can improve it? See further discussion of reference counting for string using flags "shared", "sharable" in <<More effective C++>>. Testing self assignment is a good thing, however, is it away necessary? No. You can simply allocate new memory before desallocate old memory, if you avoid self assignment test, you probably not only improve the performance of your code, but also make it exceptionally safe (see <<Exceptional C++>>)

It lacks discussion for new features as namespace, exceptions, which you can find in <<More effective c++>> and <<Exceptional c++: 47 puzzles>>, STL can be found in a very good book <<The C++ Standard Library : A Tutorial and Reference>> as well. It lacks new style cast , for example, const cast and mutable can be used to make to difference between logical constness and physical constness, but at the time the book was writen, they did not exist yet (see 2.9, page 26 -- 28).

Implicite type conversion (3.4)is no longer considered as a good thing for string, read Item 39 of <<Exceptional C++>> on page 162 to see why (think about what will happen with or without implicit type conversion: string s1, s2, s3; s1 = s2 - s3). Imaginary is not Complex (p 89) as circle is not ellipse (see <<C++ faqs>>).

Enough said, I can not give a complete description of this book here. Overall, it is a very good book, although it lacks some new features (read <<(More) effective C++>>, <<Design patterns>>, <<Exceptional C++>>, <<The C++ Standard Library : A Tutorial and Reference>> and <<C++ faqs>>) and pay attention for errors inside. Email me for further discussion: zlan@hotmail.com. Good luck and have fun!

Rating: 5 stars
Summary: Do you JAVA?
Review: Many people know that this book had tremendous impact on the birth of the pattern community.

But do you know what this book realy aimed for and what realy happend that made an update to this book an unnecessary job?

Java was born! And Java is doing so great!

If you know C++ and Java very well, you may reach the same conclusion.

This book is obsolete in some perspectives, but it is a classic in C++.

Rating: 4 stars
Summary: Good one!
Review: This book is not for beginners and needs careful reading. I'm sure, After reading this book you will know more about C++ and better ways of using C++.


<< 1 2 >>

© 2004, ReviewFocus or its affiliates