• slazer2au
    link
    fedilink
    English
    arrow-up
    18
    arrow-down
    2
    ·
    14 hours ago

    Bun’s founder experimented with a massive agentic rewrite from Zig to unsafe Rust.
    That experiment was merged days later and is now the official version.

    Wait, they ai yolo from a memory safe language to an unsafe version of a different memory save language?

    • Eager Eagle
      link
      fedilink
      English
      arrow-up
      10
      ·
      14 hours ago

      Zig is not as strict as Rust for memory management

        • Eager Eagle
          link
          fedilink
          English
          arrow-up
          3
          ·
          13 hours ago

          yes, but when you make a port from one language to another, usually you want to rewrite it as a translation first, then refactor later with the features that language provides. A port that refactors everything in the first release is too risky.

          The fact the translation has unsafe blocks only demonstrates the Zig version is not really safe as per Rust standards.

          • tracyspcy@lemmy.ml
            link
            fedilink
            arrow-up
            5
            arrow-down
            2
            ·
            13 hours ago

            my comment was just pointing out to unsafe rust blocks used in sloppy rewrite.

            • BB_C@programming.dev
              link
              fedilink
              arrow-up
              3
              arrow-down
              7
              ·
              11 hours ago

              You clearly don’t even know what unsafe in rust means. And it’s not something you can avoid when FFI is involved, slopping involved or otherwise.

                • BB_C@programming.dev
                  link
                  fedilink
                  arrow-up
                  3
                  arrow-down
                  6
                  ·
                  10 hours ago

                  You can interface with a C++ JS engine without unsafe (which is equivalent to just using C btw), if you just really put a real effort into it.

                  😇

                  I do love me some internet gantry commentary. Especially when it’s super confident and acting knowledgable, with multiple layers of genius on display.

    • FizzyOrange@programming.dev
      link
      fedilink
      arrow-up
      4
      arrow-down
      8
      ·
      13 hours ago

      Sure, but only 5% of the Rust code is unsafe, which is clearly an improvement. And their plan is to reduce that amount over time.

      I’m no fan of AI slop but that point isn’t an issue.

      • SinTan1729@programming.dev
        link
        fedilink
        English
        arrow-up
        9
        arrow-down
        2
        ·
        11 hours ago

        It depends on where exactly that 5% lies. If it’s in the core API that’s used by the rest of the architecture, it essentially makes the whole codebase unsafe when used irresponsibly.

        I don’t know if that’s the case here, just pointing out that the 5% doesn’t mean much.

        • FizzyOrange@programming.dev
          link
          fedilink
          arrow-up
          4
          arrow-down
          3
          ·
          7 hours ago

          Not exactly. It means that any of the code could lead to memory unsafety, but it’s still better than Zig or C because you still only have to read 5% of the code to debug/fix those issues, instead of 100%.

          5% is clearly better than 100%. Whatever else you think about this port you can’t argue against that. In fact I can prove that it’s better.

          1. Does Rust’s memory safety design improve memory safety? Yes, this is proven by experience (e.g. see Google’s blog posts).

          2. Does “normal” (not slop) Rust code rely on some unsafe? Yes. All Rust code must use some unsafe because it’s used in the standard library, and even if you ignore that (there is an effort led by Amazon to formally verify it), it’s usual for Rust projects to use at least some unsafe. Let’s say 0.1% of lines.

          3. So 0.1% unsafe is clearly better than 100%. Is it possible for 0.1% unsafe to be better than 100%, but somehow 5% isn’t? That would require things to be non-monotonic which is completely implausible.

          • SinTan1729@programming.dev
            link
            fedilink
            English
            arrow-up
            4
            ·
            6 hours ago

            I’m sorry, but since we’re being pedantic, this is not a proof. It’s full of assumptions, some of which are wrong.

            5% is clearly better than 100%

            Never denied it. 0% is even better. What matters is where it’s used. If it’s used for FFI, that’s understandable. Any other use should be scrutinized more. And that’s the issue. The claim of Zig’s creator is that the devs of Bun are not reliable. And to me at least, his arguments make sense.

            it’s usual for Rust projects to use at least some unsafe

            Doesn’t seem like it. This article claims that only about 20% of Rust code uses unsafe at all. Even among those, the vast majority uses it for FFI, which is unavoidable.

            but somehow 5% isn’t

            Again, no one claimed that. But we need more than “better than 100%” when it’s a JS runtime. And the "better"ness isn’t necessarily linear. So, even though it might be technically “better”, it might not be by much. At that point, what even is the point of the rewrite?

            Again, I’m not claiming that it’s actually badly written. I’m only claiming that your arguments are not adequate, and that Bun is not a reliable company, so take whatever they claim with a grain of salt.