• funtrek@discuss.tchncs.de
    link
    fedilink
    arrow-up
    12
    arrow-down
    6
    ·
    2 months ago

    The problem with c++ is that it allows people to do whatever they want. Turns out: people are dumb. Rust solved that problem. Nothing more, nothing less.

    • _____@lemm.ee
      link
      fedilink
      English
      arrow-up
      7
      arrow-down
      1
      ·
      2 months ago

      I heavily disagree. C++ has a lot of problems but it’s flexibility is not one of them.

      Imo the biggest problem with C++ is that there are a dozens ways of doing the same thing. The std lib is not general and fast enough for everyone. Therefore it’s not even “standard” .

      I have seen many conferences of a proposed “cpp2” like syntax that breaks abi but imo it’s the best way forward.

    • Dark ArcA
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      6
      ·
      2 months ago

      Rust still allows people to do (basically) whatever they want via unsafe blocks.

      • FizzyOrange@programming.dev
        link
        fedilink
        arrow-up
        8
        arrow-down
        1
        ·
        2 months ago

        Yeah but I have written a lot of Rust and I have yet to use a single unsafe block.

        Saying “but… unsafe!” is like saying Python isn’t memory safe because it has ctypes, or Go isn’t memory safe because of its unsafe package.

        • FalconMirage@jlai.lu
          link
          fedilink
          arrow-up
          3
          arrow-down
          3
          ·
          2 months ago

          You don’t have to use unsafe C++ functions either

          C++ is technically safe if you follow best practices

          The issue, to me, is that people learn older versions of the language first, and aren’t aware of the better ways of doing stuff.

          IMO people should learn the latest C++ version first, and only look at the older types of implementation when they come across them

          • FizzyOrange@programming.dev
            link
            fedilink
            arrow-up
            2
            ·
            2 months ago

            C++ is technically safe if you follow best practices

            Yeah but it’s virtually impossible to reliably follow best practices. The compiler won’t tell you when you’re invoking UB and there is a lot of potential UB in C++.

            So in practice it is not at all safe.

            • FalconMirage@jlai.lu
              link
              fedilink
              arrow-up
              3
              ·
              2 months ago

              I agree

              I was only adding my opinion (that people should try to always use the latest version of C++, which is inherently safer, but still not 100% safe)

        • Dark ArcA
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          6
          ·
          2 months ago

          See my reply to funtrek’s reply.

      • funtrek@discuss.tchncs.de
        link
        fedilink
        arrow-up
        7
        ·
        2 months ago

        Sure, but you have to explicitly enable this feature. In c++ you can use the oldest shit from twenty years ago and your compiler happily does its job. All my c++ books are full of “you shouldn’t use xy as it is deemed unsafe now, but of course you still can”.

        • Dark ArcA
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          6
          ·
          2 months ago

          If a “safe C++” proposal truly proposes a safe subset, then yes your C++ code would have to opt-in to doing unsafe things. For the purposes of this discussion of a safe subset … the point is moot.

          • FizzyOrange@programming.dev
            link
            fedilink
            arrow-up
            6
            arrow-down
            1
            ·
            2 months ago

            It’s not moot. The Safe C++ is opt-in to safety. It has to be because otherwise it wouldn’t be compatible with existing C++.

            • Dark ArcA
              link
              fedilink
              English
              arrow-up
              2
              arrow-down
              4
              ·
              edit-2
              2 months ago

              That’s a laudable difference /s. Using Rust is also an “opt-in” option.