3rd, after Python and C. Etymology According to Stroustrup, "the name signifies the evolutionary nature of the changes from C". This name is credited to Rick Mascitti (mid-1983) and was first used in December 1983. When Mascitti was questioned informally in 1992 about the naming, he indicated that it was given in a tongue-in-cheek spirit. The name comes from C's ++ operator (which increments the value of a variable) and a common naming convention of using "+" to indicate an enhanced computer program. During C++'s development period, the language had been referred to as "new C" and "C with Classes" before acquiring its final name. Philosophy Throughout C++'s life, its development and evolution has been guided by a set of principles: It must be driven by actual problems and its features should be immediately useful in real world programs. Every feature should be implementable (with a reasonably obvious way to do so). Programmers should be free to pick their own programming style, and that style should be fully supported by C++. Allowing a useful feature is more important than preventing every possible misuse of C++. It should provide facilities for organising programs into separate, well-defined parts, and provide facilities for combining separately developed parts. No implicit violations of the type system (but allow explicit violations; that is, those explicitly requested by the programmer). User-created types need to have the same support and performance as built-in types. Unused features should not negatively impact created executables (e.g. in lower performance). There should be no language beneath C++ (except assembly language). C++ should work alongside other existing programming languages, rather than fostering its own separate and incompatible programming environment. If the programmer's intent is unknown, allow the programmer to specify it by providing manual control. Standardization C++ is standardized by an ISO working group known as JTC1/SC22/WG21. So far, it has published six revisions of the C++ standard and is currently working on the next revision, C++23. In 1998, the ISO working group standardized C++ for the first time as ISO/IEC 14882:1998, which is informally known as C++98. In 2003, it published a new version of the C++ standard called ISO/IEC 14882:2003, which fixed problems identified in C++98. The next major revision of the standard was informally referred to as "C++0x", but it was not released until 2011. C++11 (14882:2011) included many additions to both the core language and the standard library. In