On "Safe" C++ - eviltoast

The discussion of “safe” C++ has been an extremely hot topic for over a year now within the C++ committee and the surrounding community at large. This was mostly brought about as a result of article, after article, after article coming out from various consumer advocacy groups, corporations, and governments showing time and again that C++ and its lack of memory safety is causing an absolute fuckload of problems for people.

And unfortunately, this means that WG21, the C++ committee, has to take action because people are demanding it. Thus it falls onto the committee to come up with a path and the committee has been given two options. Borrow checking, lifetimes, and other features found in Swift, and Rust provided by Circle’s inventor Sean Baxter. Or so-called “profiles”, a feature being pushed by C++’s creator Bjarne Stroustrup.

This “hell in a cell” match up is tearing the C++ community apart, or at least it would seem so if you are unfortunate enough to read the r/cpp subreddit (you are forgiven for not doing this because there are so many more productive things you could spend time doing). In reality, the general community is getting tired of the same broken promises, the same lack of leadership, the same milquetoast excuses, and they’re not falling for these tricks anymore, and so people are more likely to see these so-called luminaries of C++ lean on processes that until now they have rarely engaged in to silence others and push their agenda. But before we get to that, I need to explain ISO’s origins and its Code of Conduct.

  • calcopiritus@lemmy.world
    link
    fedilink
    arrow-up
    16
    arrow-down
    1
    ·
    1 month ago

    And unfortunately, this means that WG21, the C++ committee, has to take action because people are demanding it

    Why does this mean that they have to take action? Why do they need to make C++ memory safe?

    C++ was not designed to be memory safe. If you try to make C++ memory safe, you’ll have to break retro compatibility. If you’re going to break retro compatibility, can you say it’s still C++? Or another language called C++2? At that point, why not just use another language that was designed from the start to be memory safe?

    The action that should be taken is to completely avoid starting any new project in C++, and let the language die. A programming language is nothing more than a tool, once the tool no longer works, you search for another that does.

    C++ should go the way of fortran and cobol. The only development of C++ should be done is to maintain existing huge codebases that would be too expensive to rewrite.

    • lad@programming.dev
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 month ago

      once the tool no longer works, you

      … try every trick to make it look like it works, blame everyone for not using it, blame everything for not working the way it should, break some things that are made with other tools that work for a good measure (it was their fault for being too arrogant, anyway)