Thriving in a Crowded and Changing World: C++ 2006–2020
Bjarne Stroustrup (Morgan Stanley and Columbia University), Proceedings of the ACM on Programming Languages Vol. 4, HOPL, Article 70, June 2020 — the History of Programming Languages conference, peer-reviewed and shepherded (Yannis Smaragdakis). T1, and 168 pages; read here for the process and adoption material rather than the feature-by-feature history. CC BY-ND.
The question it asks
“How did C++ — an older language without serious commercial backing — manage to thrive in the face of all that?” That is the interesting framing: the paper is about survival under competition from “well-financed and professionally marketed languages,” not about feature design.
The measured answer to “thrive”: the developer community went from about 3 million in 2006 to about 4.5 million in 2020.
The committee, described by someone in it
- Up to 250 people at week-long meetings, three times a year, plus electronic participation.
- Consensus process, with open competition between proposals and “clashes (usually polite ones) over direction, design philosophies, and principles.”
- The author’s own account of the risks: “We try (not always successfully) to mitigate the effects of design by committee, bureaucratic paralysis, and excessive enthusiasm for a variety of language fashions.” Quoted exactly because it is a rare first-party admission of the failure modes of the governance model this spoke tracks.
The three demands
• Make the language simpler! • Add these two essential features now!! • Don’t break (any of) my code!!!
Stroustrup frames C++ as decades of holding all three at once, and explains why the third dominates: once the focus shifts “from learning to delivering and maintaining significant applications,” what developers want is “comprehensive support, stability (compatibility), and familiarity.” He adds the uncomfortable observation that “people invariably confuse familiarity with simplicity and prefer familiarity over simplicity if given a choice.”
Read with the author in mind. This is the language’s designer writing its history, in a venue that invites exactly that. The facts (dates, committee size, standards) are checkable; the causal story — stability is why C++ grew — is his argument, not a measurement, and the paper offers no counterfactual.
Why the spoke wanted it
It supplies both halves of one coverage edge at once: a committee-side account of what the standard is, and an adoption account with a number attached. It also gives language-governance its strongest case of the no-owner model — nobody in this process has the authority to break code, so compatibility is not a policy but a structural outcome.