langwhy

C++

Systems· alive, actively evolving· since 1985 · Bjarne Stroustrup

Compiled language that adds classes, templates and manual memory control to C.

Draft from 2026-10-30, not yet checked claim by claim against its sources. Help verify it.

Born from

In 1979 Bjarne Stroustrup was using Simula, which had the classes he wanted, to simulate a distributed operating system. Simula ran too slowly for the job, so he set out to combine its classes with the speed of C, and the first version was called C with Classes.

What it trades away

manual memorymemory
static typestypes
compiles to native coderuns as
threadsconcurrency

Cost: A large language that keeps C's undefined behaviour and offers many ways to misuse the same feature, and template-heavy code gives long compile times and error messages.

Where it fits

SlotFit
systems●●●
games●●●
embedded●●○
server●●○
wasm●●○
browser○○○Chrome's JavaScript engine is C++, but pages reach C++ only through WebAssembly.

Why it exists

In 1979 Bjarne Stroustrup started the work that became C++, with the goal of writing “efficient systems programs in the styles encouraged by Simula67” (Stroustrup, C++ FAQ). He was using Simula to simulate a distributed operating system. In a lecture transcript on his site he says Simula “simply ran too slow”, and that “it was too expensive, so I had to translate it to a lower level language” (Stroustrup, Gillies lecture). He wanted Simula’s type system and object-oriented design married to the strengths of C. The first version, “C with Classes”, began in April 1979 (Computer History Museum).

What it trades away

C++ kept C’s unchecked pointers and undefined behaviour, because Stroustrup considered C “the best systems programming language available” at the time (Stroustrup, C++ FAQ). On top of that it adds classes, templates, operator overloading and many more features, so a programmer has many ways to use the language and many ways to misuse it. Heavy template code makes compile times and error messages long. The cost is size and complexity, paid by everyone who reads the code, and the unsafe parts stay in the language for compatibility with C.

Where it won

V8, Google’s JavaScript and WebAssembly engine, is written in C++ and is used in Chrome and Node.js (V8). LLVM, the compiler framework, is written using the subset of C++ documented in its coding standards (LLVM). The language became an ISO standard when ISO/IEC 14882:1998 was published on 1 September 1998 (Stroustrup, ISO press release), and the current standard, C++23, finished its technical work in 2023 (ISO C++).

Named wins

Evolution

Reacts to: C, simula

Led to: Go, Java, Rust, Zig

Weigh it against: Rust, C, Zig

Timeline

Links

website · PLDB

Sources

  1. https://www.stroustrup.com/bs_faq.html
  2. https://stroustrup.com/gillies.htm
  3. https://softwarepreservation.computerhistory.org/c_plus_plus/
  4. https://www.stroustrup.com/iso_pressrelease2.html
  5. https://isocpp.org/std/the-standard
  6. https://v8.dev/docs
  7. https://llvm.org/docs/GettingStarted.html
  8. https://pldb.io/concepts/cpp.html

Unverified draft, 2026-10-30.Edit the facts · edit the story · JSON · Markdown