This voluntary guidance provides an overview of product security bad practices that are deemed exceptionally risky, particularly for software manufacturers who produce software used in service of critical infrastructure or national critical functions (NCFs).
The difference here is that it takes discipline and training to use only those parts of C++. That requires humans in the loop to enforce those decisions. Humans are fallible.
If you make it impossible at the language level then there’s nothing to train. You just can’t do the thing unintentionally.
And they didn’t specify Rust; the aerospace industry has been using Ada for decades when it comes to mission critical stuff. Ada’s compiler has long had a similar notoriety to rust’s regarding the difficulty curve.
My guess would also be that most enterprises prefer Ada over Rust, because Rust lack standardisation. Sometimes you need to do unsafe things though and your billion dollar rocket explode.
The difference here is that it takes discipline and training to use only those parts of C++. That requires humans in the loop to enforce those decisions. Humans are fallible.
If you make it impossible at the language level then there’s nothing to train. You just can’t do the thing unintentionally.
And they didn’t specify Rust; the aerospace industry has been using Ada for decades when it comes to mission critical stuff. Ada’s compiler has long had a similar notoriety to rust’s regarding the difficulty curve.
My guess would also be that most enterprises prefer Ada over Rust, because Rust lack standardisation. Sometimes you need to do unsafe things though and your billion dollar rocket explode.