C++ creator rebuts White House warning
C++ Safety vs Guidelines
- Many argue C++ remains fundamentally unsafe: safety “guidelines” are optional, unevenly enforced, and hard to retrofit onto existing code.
- Others say C++ can be “safe enough” with strict discipline: limited feature subsets, smart pointers, value semantics, sanitizers, max warnings, and linters aligned with the core guidelines.
- Several note that newer features (e.g.,
string_view, iterators) are themselves easy to misuse and can introduce subtle lifetime bugs.
Performance Debates (C++ vs Others)
- One side claims modern Java and other managed languages often match or exceed “real-world” C++ performance, especially when typical C++ projects lack advanced build/optimization setups (PGO, LTO, etc.).
- Opponents counter that high‑performance domains (AI/ML, HPC, GPU workloads) overwhelmingly rely on C/C++, and that Java/GC constraints make it unsuitable at those extremes.
- Some stress that C++ only reliably wins when experts aggressively manage memory layout, allocation, and cache behavior—effort most codebases never see.
Real‑World C++ Codebases
- Distinction is drawn between “idealized modern C++” and messy, legacy, mixed‑style code that dominates industry.
- Older C++03‑era systems are seen as especially hard to evolve safely; a few elite shops manage, but many others have failed or migrated away.
- Even in “modern” code, contributors report crashes from standard library quirks, iterator invalidation, and subtle UB that the compiler doesn’t flag.
Rust and Memory‑Safe Alternatives
- Many view Rust (and to a lesser extent Go, Java, Swift, etc.) as clearly safer by construction, eliminating large classes of memory bugs.
- Others argue the safety gap between well‑written C++ and Rust is small, emphasizing Rust’s own unsafe blocks and dependence on C libraries.
- Concerns are raised about Rust’s async “coloring,” ecosystem maturity, and heavy use of third‑party crates (supply‑chain and complexity risks).
Government Guidance and Response
- Some see the White House’s push away from C/C++ as overdue recognition that decades of memory‑safety issues show the language itself is a core problem.
- Others emphasize pragmatism: C++ is deeply entrenched (OSes, browsers, robotics, finance, embedded), cannot simply be dropped, and must be made safer via tooling and profiles.
- There is skepticism that ongoing C++ safety proposals (profiles, “C++ v2”) will arrive or be adopted fast enough compared to just choosing Rust or other safer languages for new projects.