Comment by rob74
2 days ago
> You can imagine how we might want to put some social distance between ourselves and a project whose irresponsible software engineering practices invite the exact kind of criticism that people are eager to level.
The other (very salient) points notwithstanding, I'm afraid this quote shows that Zig hasn't learned a lesson that other languages of its generation (and older) have: if a project's memory safety depends only on "responsible engineering practices", then that project most likely won't be memory safe. Quoting the "swiss cheese" model used in risk management: one slice of cheese (engineering practices) just isn't enough if you want to be reasonably sure your program is memory safe.
I’m reminded of the hierarchy of controls in machine safety. If you can’t eliminate the hazard, or substitute a less hazardous thing, then engineering out the hazard (like Rust did) is preferable to a procedural control (“git gud at engineering”).
Can you elaborate on the distinction between "eliminate the hazard" as the first choice and "engineering out the hazard" as a fallback approach?
In my safety background (recently aerospace, ARP4754/4761), removing and avoiding the hazard are essentially equivalent, with reducing the likelihood and mitigating its effects acceptable if you can't remove or avoid the hazard, and procedure is also the least preferred mechanism.
C/C++ with static code analysis is not worse than Rust. But most Rust developers are beginners during there are many C/C++ developers with 20+ years knowledge. So whats exactly is the point in using Rust?
The number of critical CVEs every year related to memory safety seems to point to the contrary. The amount of "just one more static analysizer and we'll never have any bugs!" in the C++ community is honestly disturbing, alongside the obvious elitism and absurdity of statements like 20 years of knowledge == no bugs ever.
C/C++ does not care and they’re currently the language for foundational work (OS, platforms, and libraries). Python and Java does not care, they will just throw runtime exceptions and crash. Rust care, but they don’t play well with the rest of the world.
rust is currently making its way into linux kernel, core contributors even did rust conf talks...windows already has rust going into kernel and core libraries, osx is also adopting rust, its making its way into all those 'foundational works' you're talking about.. so i'm pretty confused what you are saying
I mean, case in point. (One of?) Zig's largest adopted projects who was donating $60,000 a year made by a contributor that worked directly with Andrew... Was not "stinky" engineering.
If Bun can't get it right starting in 2026 with all of Zig's tooling and someone who worked on the language, what hope does my random team have?
Especially when we could, instead, use Rust. With a larger community to boot.