• ZILtoid1991@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        1 month ago

        Issue is, Rust is not a drop-in replacement for C. The memory safety features are just one part, and since Rust is also a “weakly” functional language, thus its prefered to write such code with it.

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

          Anything that is drop-in replacement for C (or C++ for that matter) is going to be awful because of the same compatibility burden, imo

        • CanadaPlus@lemmy.sdf.org
          link
          fedilink
          arrow-up
          0
          ·
          1 month ago

          Yeah, it’s not a small change. If there was a simpler way to make C memory-safe, it would have been done decades ago. It’s just a different language too, which is fair given how much younger it is.

          • ZILtoid1991@lemmy.world
            link
            fedilink
            arrow-up
            0
            ·
            1 month ago

            D kind of did that (C pointers are still an option, alongside with the preferred dynamic arrays, which has the memory safety features), and once I’ve seen a C compiler fork that retroactively added D-style memory safety features, although they also very much insisted on the “const by default” mantra.

            • CanadaPlus@lemmy.sdf.org
              link
              fedilink
              arrow-up
              0
              ·
              1 month ago

              I think this is one of those things where there’s no “kind of”. Pointers were added for a reason, you’re probably not going to implement a database very well without them. If you use them, at some scale you’re inevitably going to have memory bugs. Technically, if you were to only use hardcoded printfs, C is memory safe too.

          • ssm@lemmy.sdf.org
            link
            fedilink
            arrow-up
            0
            ·
            edit-2
            1 month ago

            If there was a simpler way to make C memory-safe, it would have been done decades ago.

            We’ve had compile time sanitizers (-fsanitize=blah in gcc/clang) and runtime sanitizers (valgrind) for ages. I don’t know how they stack up against rust’s compile time sanitizers, but it’s something.