Brief History of the C++ Language

This section provides a brief history of the C++ programming language from the 1970s until today. We’ll also explore what “Modern C++” means and review why this 40-year-old technology remains relevant today.

Table of Contents

  1. In the Beginning There Was C
  2. C With Classes
  3. Standardization
  4. Modern C++
  5. Why C++
  6. Further Reading

In the Beginning There Was C

Unix and C creators Ken Thompson and Dennis Ritchie

The C programming language was created in the 1970s at the American research organization Bell Labs. Bell researchers at that time were also developing the Unix operating system. C was created by Ken Thompson and Dennis Ritchie as a system language for Unix. The kernels of most modern operating systems (Windows, Mac, Linux) are still written in C to this day.

C With Classes

Creator of the C++ Language Bjarne Stroustrup - Photo by Julia Kryuchkova

In the late 70s Bjarne Stroustrup (also at Bell Labs) started work on what would later become the C++ programming language. Stroustrup’s work on the language started by extending C to support the then-new coding paradigm of object-orientation. The language was renamed from “C with Classes” to C++ in 1984 as a nerdy joke: The increment operator in C is the ++ operator, so C++ is “one more than” C, or in other words, an improvement on C.

Standardization

The C++ Logo by Jeremy Kratz

The first book on C++ was written by Stroustrup in 1985 but the language wasn’t fully formalized until 1998 when in became an ISO standard. Since this standardization, changes to C++ are managed by the C++ Standards Committee. Since 2011 the committee has been releasing a new version of C++ every three years. The major versions being C++98 (1998), C++03 (2003), C++11 (2011), C++14 (2014), C++17 (2017) and C++20 (2020).

With each new version of the language come new language features and standard library improvements. You’ll often hear language featured referred to as specific to a version of the language, as in “Oh, that’s a C++14 feature.”

Modern C++

Another thing you’ll often hear in the C++ world are mentions of “Modern C++”. There’s no real definition of what makes a particular feature or usage of the language modern. In fact every time a new version of the language is released its new features are often referred to as “Modern C++”.

Separate from the language, the term “Modern C++” can also refer to newer best practices for designing, writing, and building C++ applications.

In this course we’ll study C++ from both a “Modern C++” and a “Legacy C++” perspective. The hope is that you learn to write new code in the modern fashion, with the ability to maintain existing code.

Why C++

Here are some of the reasons why C++ remains such a popular language:

  • Flexible: It supports different coding styles including imperative, object-oriented, generic, and functional programming.
  • Safe: The language is statically-typed, meaning the compiler can catch a wide range of type-related bugs.
  • Performant: With data types that map directly to machine hardware the compiler can produce highly optimized native code.
  • Cross-Platform: Carefully written C++ can be compiled to run on different CPU architectures and for different operating systems.
  • “Batteries-Included”: C++ ships with an excellent standard library that includes high-quality implementation of commonly needed data-structures and algorithms.

Further Reading