By Bjarne Stroustrup
Since October 2003 I have learned to appreciate the C++ programming language. In fact, the better I get acquainted with C++, the more I like it. So, after having read Practical C++ by Ouailline, C++ in a Nutshell by Lischmer, Accelerated C++ by Koenig and Moo and a few others, and after having touched half a million lines of C++, I thought it time to go to the master for instruction.
Which is why I bought a second-hand copy of The Design and Evolution of C++, and later also The C++ Programming Language. Even though it’s an old book, dating back to 1994 (stone age, practically, no mention of Java or Python in this book), TDaEoC++ was exactly right for me. I like reading the combination of a historical treatment and a discussion per “feature” or “problem area” much more than a language specification or a tutorial-style book. I feel I’ve got a much better understanding of why things are the way they are in C++.
Of course, it’s also an advantage that Stroustrup is a clear and entertaining author: not too dry, but not trying to be overly funny either. If I wanted to niggle I’d say that Stroustrup is a little too defensive, although that’s understandable given the flak that C++ has been getting since its inception.