Milewski draws a lot of experience from his work at Microsoft, and this book is to tell us about it. It's one of the most unusual kinds of programming books, one that I've wanted to read for a long time. It's massively "hands-on", which is a great thing (especially after introductory books get boring and reference books are... well... just reference books).

"C++ in action" starts with an overview of C++. This is not your usual overview, and people fresh to programming will have a very hard time grokking it. It takes the same "hands-on" approach, introducing C++ features "on a need-to-know basis".

Next the real fun begins. The author undertakes a real programming project - with a spec and everything. It's a calculator, that understands generalized expressions with rec-descent parsing (i.e. x = y * (z * sin(2*pi)) is understood), saves variables, functions, etc... definitely not a trivial task.

An implementation is introduced chapter after chapter.

The next part is the best. The author questions the quality of the code written for the calculator, and takes on a task to improve it. Redesign, refactoring, exception safety (with interesting allocation schemes to keep it exception-robust), containers, auto-pointers, containers for auto-pointers, smart (ref-count) pointers, containers for them, STL is introduced. All of this is again introduced on a "need to know" basis. The author says "wouldn't it be nice to have X", and then X is either coded or build from existing C++ features. This part is great. I felt that I'm swiftly taken on a whole new, high level of C++ programming.

The last part is general about software engineering, not much different from other books on the topic, so it's not a highlight in this book.

Now to some negative points: the examples in the book, and especially the code, is not "polished" enough. Some code is missing, there are some mistakes, which all makes "reading and typing in the examples" a very daunting task. Without these problems, the book could be rated "excellent" for sure.

Conclusion: if you are a beginning C++ programmer, with some early knowledge of C++, and want to see what "industrial strengh" C++ looks like, while being led through a real and interesting example, and have some patience for the mistakes, definitely download the book and work through it. There's no doubt that it will raise your level of C++ to new heights.


comments powered by Disqus