this post was submitted on 13 Jul 2026
71 points (96.1% liked)

Programming

27697 readers
236 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 3 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] slazer2au@lemmy.world 16 points 1 day ago (2 children)

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@lemmy.world 13 points 1 day ago (1 children)

Zig is not as strict as Rust for memory management

[–] tracyspcy@lemmy.ml 3 points 1 day ago (1 children)
[–] eager_eagle@lemmy.world 5 points 1 day ago* (last edited 1 day ago) (1 children)

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 4 points 1 day ago (1 children)

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

[–] BB_C@programming.dev -2 points 1 day ago (2 children)

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.

[–] vanillama@programming.dev 2 points 1 day ago

I see what you're saying, but there's no need to be rude.

[–] tracyspcy@lemmy.ml 1 points 1 day ago (1 children)
[–] BB_C@programming.dev -4 points 1 day ago (1 children)

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.

[–] tracyspcy@lemmy.ml 6 points 1 day ago

where is quote from? You pretend this is a quote of something I wrote?

[–] FizzyOrange@programming.dev -4 points 1 day ago (1 children)

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 9 points 1 day ago* (last edited 1 day ago) (1 children)

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 -2 points 1 day ago (1 children)

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 7 points 22 hours ago* (last edited 2 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 crates use unsafe at all. Even among those, the vast majority use it for FFI, which is kinda 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.