With the NSA recommendation to not use C or C++ the succession might
happen swifter than one would think. Or not. Things are happening.
NSA, November 2022:
¹❝NSA advises organizations to consider making a strategic shift from
programming languages that provide little or no inherent memory
protection, such as C/C++, to a memory safe language when possible. Some
examples of memory safe languages are C#, Go, Java, Ruby™, and Swift®❞
The New Stack, February 2023 (linking to Bjarne's NSA response):
²❝In mid-January, the official C++ “direction group” — which makes
recommendations for the programming language’s evolution — issued a
statement addressing concerns about C++ safety. While many languages now
support “basic type safety” — that is, ensuring that variables access
only sections of memory that are clearly defined by their data types —
C++ has struggled to offer similar guarantees.
This new statement, co-authored by C++ creator Bjarne Stroustrup, now
appears to call for changing the C++ programming language itself to
address safety concerns. “We now support the idea that the changes for
safety need to be not just in tooling, but visible in the
language/compiler, and library.”
The group still also supports its long-preferred use of debugging tools
to ensure safety (and “pushing tooling to enable more global analysis in
identifying hard for humans to identify safety concerns”). But that
January statement emphasizes its recommendation for changes within C++.
Specifically, it proposes “packaging several features into profiles”
(with profiles defined later as “a collection of restrictions and
requirements that defines a property to be enforced” by, for example,
triggering an automatic analysis.) In this way the new changes for
safety “should be visible such that the Safe code section can be named
(possibly using profiles), and can mix with normal code.”❞
¹
https://media.defense.gov/2022/Nov/10/2003112742/-1/-1/0/CSI_SOFTWARE_MEMORY_SAFETY.PDF
²
https://thenewstack.io/can-c-be-saved-bjarne-stroustrup-on-ensuring-memory-safety/
- Alf