• While I appreciate that this blog post acknowledges that “there is truth behind the statements” that C⁠+⁠+ carries safety risks, I think it’s still strange to even consider the arguments they (sort of) dismissed. These arguments are bordering on delusional.

    I agree with the blog post that a core issue is certainty.

    The post links to an article for the claim that C⁠+⁠+ memory safety issues are overblown. That article makes the ludicrous argument that:

    only three of the top 10 “most dangerous software weaknesses” are related to language safety properties

    Of course, memory safe languages nearly eliminate these issues, whereas the C⁠+⁠+ innovations that mitigate them provide far less certainty. The idea that nearly eliminating “only” 3/10 of the most dangerous software weaknesses via language choice isn’t significant is baffling.

    Why should adding more and more layers of ever more “modern” C⁠+⁠+ eventually fix this? The post itself acknowledges that it’s difficult to tell if everything is safe. It is equally difficult to tell if anything is actually using “modern” features, and the “modern” features do not do a good job at separating themselves from less “modern”, less safe components.

    It really feels to me like the entire C⁠+⁠+ community is delusional about the language. So many talks and posts I’ve seen discussing “modern” C⁠+⁠+ glibly dismiss safety issues. They seem incapable of understanding the mental frame in which languages like Rust or Java are designed. So incapable, that even when they see some sense, as here, they are incapable of stating it as bluntly as it needs to be.


    score 1 · canonical