{"id":1629,"date":"2024-03-01T06:52:54","date_gmt":"2024-03-01T06:52:54","guid":{"rendered":"https:\/\/cppdepend.com\/blog\/?p=1629"},"modified":"2024-03-04T09:45:13","modified_gmt":"2024-03-04T09:45:13","slug":"even-the-white-house-wants-you-to-abandon-c-and-c-dont-do-it","status":"publish","type":"post","link":"https:\/\/cppdepend.com\/blog\/even-the-white-house-wants-you-to-abandon-c-and-c-dont-do-it\/","title":{"rendered":"Even the White House wants you to abandon C and C++, It&#8217;s time to focus on C++ safety and join the Bjarne initiative."},"content":{"rendered":"\n<p>The C and C++ languages are no longer favored by the highest American authorities. Indeed, the White House wishes for developers to use memory-safe languages. In this <a href=\"https:\/\/www.whitehouse.gov\/wp-content\/uploads\/2024\/02\/Final-ONCD-Technical-Report.pdf\">report<\/a> published on Monday, the Office of the National Cyber Director (ONCD) of the White House invites developers to reduce the risk of cyberattacks by using languages without memory vulnerabilities. IT companies &#8220;can prevent the introduction of multiple vulnerabilities into the digital ecosystem by adopting secure languages,&#8221; the presidency said in a statement. It refers to those that are protected against buffer overflow, out-of-bounds reads, and memory leaks.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>From the report, we can read:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Experts have identified a few programming<br>languages that both lack traits associated with memory safety and also have high proliferation<br>across critical systems, such as C and C++.Choosing to use memory safe programming languages<br>at the outset, as recommended by the Cybersecurity and Infrastructure Security Agency\u2019s (CISA)<br>Open-Source Software Security Roadmap is one example of developing software in a secure-bydesign manner.<\/p>\n<\/blockquote>\n\n\n\n<p>As C++ developers, we can&#8217;t ignore this significant issue. However, the C++ language is continuously improving, with new features introduced every three years. I&#8217;m confident that this issue could be addressed soon. Indeed, Bjarne the C++ creator is aware of the safety issues and works on this topic. He\u2019s created\u00a0<a href=\"https:\/\/github.com\/bjarneStroustrup\/profiles\" target=\"_blank\" rel=\"noreferrer noopener\">a GitHub repository<\/a>, and said about this repository:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u201cwhere people can put suggestions, and where I\u2019m going to put my drafts and such, so that we can create a community working on getting this kind of stuff done in a reasonable time.\u201d<\/p>\n<\/blockquote>\n\n\n\n<p>C++ is a very powerful programming language, and it&#8217;s not trivial to replace it with another language, as Bjarne said:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u201cAnd anyway \u2014 which other language? The way I have seen it argued, we are going to have C++ replaced by about seven different languages, as of suggestions of about now. By the time it happens \u2014 40 years from now \u2014 we\u2019ll probably have 20 different ones, and they have to interoperate. This is going to be difficult.\u201d<\/p>\n<\/blockquote>\n\n\n\n<p>To get a concrete idea about the Bjarn proposition, you can refer to this video:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-embed-handler wp-block-embed-embed-handler wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Delivering Safe C++ - Bjarne Stroustrup - CppCon 2023\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/I8UvQKvOSSw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>To resume, C++ is not a dead language. It remains widely used and actively developed across various industries and domains. While newer standards and frameworks have emerged over the years, C++ continues to be a popular choice for performance-critical applications, system software, game development, embedded systems, and other domains where efficiency, control, and low-level access are paramount. However, we need to address the safety issues soon to make C++ the most powerful and secure language in the world \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The C and C++ languages are no longer favored by the highest American authorities. Indeed, the White House wishes for developers to use memory-safe languages. In this report published on Monday, the Office of the National Cyber Director (ONCD) of the White House invites developers to reduce the risk of cyberattacks by using languages without &hellip; <a href=\"https:\/\/cppdepend.com\/blog\/even-the-white-house-wants-you-to-abandon-c-and-c-dont-do-it\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Even the White House wants you to abandon C and C++, It&#8217;s time to focus on C++ safety and join the Bjarne initiative.&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[67,13,18,137,256],"class_list":["post-1629","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-c-2","tag-cpp","tag-cppdepend","tag-programming","tag-whitehouse"],"_links":{"self":[{"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/posts\/1629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/comments?post=1629"}],"version-history":[{"count":3,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/posts\/1629\/revisions"}],"predecessor-version":[{"id":1642,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/posts\/1629\/revisions\/1642"}],"wp:attachment":[{"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/media?parent=1629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/categories?post=1629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cppdepend.com\/blog\/wp-json\/wp\/v2\/tags?post=1629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}