• teolan@lemmy.world
    link
    fedilink
    arrow-up
    18
    ·
    9 months ago

    There was always a need for memory safety, we just didn’t know how to do it for low-level software and without significant performance decrease.

    Now that we have the solution, it’s urgent to deploy it.

  • bluGill@kbin.social
    link
    fedilink
    arrow-up
    9
    arrow-down
    1
    ·
    9 months ago

    Is there a language other than rust that is memory safe? I’m using C++ for good reason, and while rust does have some things I find intriguing, those who have experimented where I work have returned to modern c++ (I have not been able to figure out why). What other alternatives do I have that compile to fast code, have a wealth of libraries, and interoperate well with my existing C++?

    • lolcatnip@reddthat.com
      link
      fedilink
      English
      arrow-up
      9
      ·
      9 months ago

      You mean other than most of them? Gotta say this is the first time I’ve seen someone forget that garbage collection even exists.

      • bluGill@kbin.social
        link
        fedilink
        arrow-up
        9
        arrow-down
        1
        ·
        edit-2
        9 months ago

        I have garage collection in C++. Unique-ptr takes care of almost all my needs (and the exceptions are places where I need to subvert the system and so other garbage collection is a non starters) There is a lot more to memory safety than garbage collection though.

        Memory safety does not require garbage collection. Rust doesn’t have garbage collection and is memory safe because they annotate the lifetime of each object so that you can’t have a use after free error - the only part of memory safety garbage collection helps with. Memory safety is also about not accessing past the end of a buffer, and garbage collection does nothing to help you here. There are a number of other memory safety issues that garbage collection doesn’t help with. (most garbage collected languages also give you those things, but it isn’t the garbage collector doing that work)

    • snaggen@programming.devOP
      link
      fedilink
      English
      arrow-up
      9
      ·
      9 months ago

      The reason might be, that you must think a bit different from C++ so it might be a little bit tricky to do the switch. Thouigh, if you know C++ the ownership and stuff should be a bit easier to understand since you probably can figure out what is going on. The reason I learned Rust in the first place was because I had to use C libraries, and I knew rust had good support for that. But, unfortunately I cannot assist you with alternatives to rust, since I stopped looking after I learned rust. 😄

    • BatmanAoD@programming.dev
      link
      fedilink
      arrow-up
      6
      ·
      9 months ago

      That’s an extremely niche set of requirements, largely because interoperating with C++ is, well, a nightmare, and partly because “fast code” means something very different to C++ devs than to most devs who use managed runtimes.

      Also, there are different definitions of “safe”. Rust takes a very C++ style view: it’s “safe” in the sense that UB requires either a compiler bug or an explicit opt-in to something unsafe.

      For other definitions of “fast” and “safe”, sure, most garbage collected languages count. Java, C#, and Go are “fast enough” for most application code, and they mostly guarantee that errors will result in crashes rather than UB. Zig is as fast as C/C++/Rust (and integrates much more easily with C than any other language except C++) and has a very different approach to safety (mostly runtime checks in debug mode that are not included in release mode).