1 of 1 people found the following review helpful
A difficult, but in the end probably the more rewarding IT book I have ever read.,
This review is from: Generative Programming: Methods, Tools, and Applications: Methods, Techniques and Applications (Paperback)This is a fantastic book. No IT book has ever made such an impression on me as this book. But at the same time it has been one of the hardest IT books I have ever read.
The positive side of the book is that this is one of the few IT books that made me rethink and reevaluate the way I program. The explanation of static metaprogramming in C++ is in my opinion also the best I have read, superior to the one written by Abrahams and Gurtovoy in "C++ Template Metaprogramming", and in my view also slightly better than the one provided by Andrei Alexandrescu in "Modern C++ Design". In any case, only after reading the initial 30 pages of chapter 10 "Static Metaprogramming in C++" I had the feeling that everything fell to its place, i.e. that apart from understanding what template metaprogramming was tryig to accomplish, I also understood why it was done in exactly that way. This is a bigger accomplishment as it may seem at first, given that this book predates those other books. (It also seems that the authors were also responsible for many of the ideas of template metaprogramming.)
The downside is that this is such a lengthy book, written in very capable, but at the same time such dull prose that at various moments I just had to "log off". Some explanations may have been spot on (such as the one about template metaprogramming), some of them had me really puzzled. For instance, it took me a long time to fully grasp GenVoca models. (Especially what in GenVoca jargon is called a layer had me confused.) In order to truly appreciate the book I had to go back and reread various sections many times. But if you do, at a certain point you are rewarded. You will get an idea of what the authors try to accomplish, at at that time you begin to understand and appreciate the relevance of everything that is written (with only Chapter 11 "Intentional Programming" as an exception).