
C++ has often been compared to Latin for the sheer number of languages it has influenced. But unlike Latin, C++ is not a dead language.
Out of necessity C++ has been an evolving language.
This vides outlines some early ideals for C++, some techniques for keeping the evolution directed, and show how C++20 comes close to many of those ideals.
Specific topics includes type-and-resource safe code, generic programming, modularity, and the elimination of the preprocessor. Naturally, over the years, C++ has acquired many “barnacles” that can become obstacles to developing elegant and efficient code. That has been a recognized problem since the early days of C – Dennis Ritchie and I talked about it – so we must distinguish between what can be done and what should be done. The C++ Core Guidelines is the current best effort in that direction.