December 7, 2025
No exceptions—except eject seats?
Why Fighter Jets Ban 90% of C++ Features [video]
Jets cut fancy code: devs split between safety squad and “let me code” crowd
TLDR: Fighter jets lock down most C++ features to avoid catastrophic software failures, prioritizing boring, predictable code. Commenters split between safety purists citing a 142-page F‑35 rulebook and devs who say these bans are outdated or irrelevant to everyday apps—sparking memes and a safety-vs-freedom showdown.
A viral video claims modern fighter jets ban around 90% of C++ features, and the comments turned into a full-on coding cage match. The clip opens with a gut-punch: a single unhandled software error once blew up a $500 million rocket. Cue the safety squad cheering the jet makers for ditching risky moves: no exceptions, no recursion, and definitely no malloc/free in the hot path, as one commenter bluntly summarized. The vibe: if your code panics, the plane shouldn’t.
Then came the debate over rules. One user asked whether avionics follow industry guidelines like MISRA (a safety coding rulebook from the automotive world), or go even stricter. Another dropped a mic with the actual F‑35 C++ rulebook—all 142 pages of it—sending the thread into “this belongs in a museum” jokes. The drama: everyday devs said these constraints don’t apply to normal apps (“my problem space isn’t a missile”), while skeptics argued the bans feel stuck in the 1990s, when compilers were flaky. Memes flew: “No exceptions…except when the pilot hits eject,” and “Recursion banned because jets don’t do infinite loops.” It’s safety-first versus developer freedom, with jets choosing boring, predictable code and commenters arguing whether that’s wisdom or overkill.
Key Points
- •The video explains why fighter jet avionics ban most C++ features to ensure safety and determinism.
- •It references a past incident where an unhandled exception destroyed a $500 million rocket.
- •The F-35 program is highlighted as seeking to avoid similar software-related failures.
- •Restrictions aim to reduce non-determinism, runtime complexity, and fault risk in mission-critical code.
- •The approach prioritizes predictable, testable behavior over language convenience in safety-critical contexts.