Bjarne Stroustrup’s C++ manuals have always been near my desk. They go beyond the usual language reference manual to demonstrate powerful features and knotty points. This short article and video (http://ieeexplore.ieee.org/xpl/multimedia.jsp?&arnumber=6081841&isnumber=6127981) is similar. It is an advertisement for some of the nonobject-oriented features in the new standard C++11. Stroustrup gives short examples of compact, correct, and fast code. He argues that these features are best for certain kinds of software that he calls “infrastructure,” which need higher reliability and better performance than nonessential software.
For example, type systems understand units and so can recognize and correct common errors at compile time with no runtime cost. The new C++11 operator”” makes the expression “1ft +3inches” compilable. The video shows that complex numbers could be coded like this “1+2i” and still compile correctly. Similarly, a careful choice of library templates, rather than just using big O rules of thumb, generates faster software that is highly reliable. Stroustrup argues for compile time polymorphism rather than virtual functions. This implies a different training for system programmers. He is not alone. Others argue that teaching object-oriented languages leads to a shortage of good coders for embedded and safety-critical software [1,2].
Language mavens and C++ users will enjoy this article and start looking forward to updated compilers. However, I doubt it will convert the Pythonistas and Java-heads of this world.