Remix.run Logo
tptacek 3 days ago

I actively dislike Zig's memory safety story, but this isn't a real argument until you can start showing real vulnerabilities --- not models --- that exploit the gap in rigor between the two languages. Both Zig and Rust are a step function in safety past C; it is not a given that Rust is that from Zig, or that that next step matters in practice the way the one from C does.

dadrian 3 days ago | parent | next [-]

I like Zig, although the Bun Github tracker is full of segfaults in Zig that are presumably quite exploitable. Unclear what to draw from this, though.

[1]: https://github.com/oven-sh/bun/issues?q=is%3Aissue%20state%3...

vanderZwan 3 days ago | parent [-]

Wasn't Bun the project where the creator once tweeted something along the lines of "if you're not willing to work 50+ hours a week don't bother applying to my team"? Because if so then I'm not surprised and also don't think Zig is really to blame for that.

dadrian 3 days ago | parent [-]

Not clear to me there's a correlation between hours worked and number of memory safety vulnerabilities

blacksmith_tb 3 days ago | parent [-]

I think the implication is something like "overwork / fraying morale from long hours means shipping more bugs".

tptacek 3 days ago | parent [-]

The point of memory-safe languages is to foreclose on a set of particularly nasty bugs, regardless of how frayed engineer morale is.

vanderZwan 2 days ago | parent [-]

I'm pretty sure that in an overworked environment the engineers would reach for Rust's unsafe mode pretty quickly because they're too tired to make sense of the borrow checker.

timschmidt 2 days ago | parent | next [-]

I'm no expert, but I've been hacking in Rust for several years now, and the only unsafe I've written was required as part of building a safe interface over some hardware peripherals. Exactly as intended.

The borrow checker is something new Rust devs struggle with for a couple months, as they learn, then the rules are internalized and the code gets written just like any other language. I think new devs only struggle with the borrow checker because everyone has internalized the C memory model for the last 50 years. In another 50, everyone will be unlearning Rust for whatever replaces it.

dadrian 2 days ago | parent | prev [-]

Web browsers and operating systems are full of memory safety bugs, and are not written by engineers in crunch these days.

fuzztester 3 days ago | parent | prev | next [-]

>I actively dislike Zig's memory safety story

Why? Interested to know.

Just for background, I have not tried out either Zig or Rust yet, although I have been interestedly reading about both of them for a while now, on HN and other places, and also in videos, and have read some of the overview and docs of both. But I have a long background in C dev earlier. And I have been checking out C-like languages for a while such as Odin, Hare, C3, etc.

pjmlp 2 days ago | parent | prev [-]

Modula-2 was already a step function in safety past C, but people did not care because it wasn't given away alongside UNIX.