C++: The Documentary

C++: The Documentary prompts wide-ranging reactions on the language’s past, present, and future—from admiration for its performance, flexibility, and rich history to frustration with its complexity, ecosystem fragmentation, and safety pitfalls. Commenters debate claims that C++ is once again rapidly growing, possibly driven by AI and performance-per-watt demands, while comparing it to alternatives like Rust, Go, and Python in terms of safety, ergonomics, and long-term maintainability. Many acknowledge C++’s foundational role in modern software (browsers, game engines, AI libraries) even as they question whether it should remain the default choice for new systems-level projects.

Reception of the Documentary

  • Many commenters found the film engaging, well-paced, and enjoyable, with praise for the lineup of contributors.
  • Some noted it feels more like a celebration than a critical examination; criticisms of C++ appear only briefly near the end.
  • Viewers appreciate similar language documentaries (Python, Clojure, Erlang) and see this as part of a broader series trend.

C++ Popularity and Growth Claims

  • The cited “+90% users in 3.5 years” from a survey sparked skepticism about methodology and vendor surveys in general.
  • Explanations proposed: AI/ML workloads (C++ under the Python stack), performance-per-watt needs, and C++’s huge existing codebase and training data for LLMs.
  • Some remain unconvinced that AI specifically explains the growth.

Complexity, Standards, and Everyday Use

  • Several describe C++ as exhausting to maintain: many standards (98, 11, 14, 20, 23), overlapping features, and wildly different idioms between codebases.
  • Others argue you only need a subset; teams define their own “dialects,” and with practice C++ becomes second nature.
  • There’s concern that the language keeps accreting features without retiring old ones, increasing cognitive load.

Standard Library and Ecosystem

  • Strong disagreement over the STL/standard library:
    • One camp sees it as well-designed, robust, and safer than ad‑hoc reimplementations.
    • Another criticizes performance (e.g., regex, unordered_map), ABI constraints, lack of deprecation, and compile-time bloat; game and audio devs often avoid it or use custom containers.
  • Package management and tooling are seen as fragmented; some consider this a downside, others a feature that discourages dependency sprawl.

Comparisons with Other Languages

  • Rust is frequently cited as capturing “what worked” from C++ with a better “pit of success,” though some note Rust can force less intuitive designs for low-level structures.
  • C is preferred in safety-certified embedded contexts due to simpler reasoning; others argue modern memory-safe languages would be better long term but are not yet certified.
  • Some find C++ elegant and powerful for those who enjoy precise low-level mental models; others see it as an incoherent accumulation of decades of ideas.

Security and Future Outlook

  • A minority argue C++ “needs to die” for new projects given memory-unsafe defaults and increasingly capable exploit tooling.
  • Others counter that C++ is still unmatched for certain performance and systems niches, even if newer languages are preferable when possible.