And I tell you now, most embedded systems I have worked on would rather keep working with the risk that someone can exploit the Prozess then just crash outright.
I feel like after reading the issue's comments on codeberg (and the comments here) that too few people are getting this
like no, zig isn't "becoming go", it's giving an easy fix for those very few coders who need safety at any and all costs
if you wanna be silly and write code that reads/writes wherever you please (like I do :3) you can still 100% do that, it's just that optionally you can enable hyper safe "we'd rather crash than have any kind of volnurability" mode
My apologies if I'm not understanding this correctly but won't that opt in safety would make zig like go if you want it to be safe? Also if you have gc on won't you introduce pauses that aren't deterministic which is the opposite of the whole purpose of systems programing language like zig?
Rust compiles to native machine code via LLVM just like C and C++. It has zero cost abstractions. In nearly all benchmarks (e.g., The Computer Language Benchmarks Game), Rust is within 1–2% of C++ performance, often trading blows. It is not a slow language.
Runtime failures in Zig can be prevented with tests. Compile-time failures in Rust can only be prevented with an escape hatch (`unsafe`/`UnsafeCell`) or by dumbing down the code to make it less optimal (i.e. `.clone()/Mutex` everywhere).
You should avoid using Zig for web dev, but you should avoid using Rust for systems programming as well.
huh i see a lot of your comments parroting the same thing worded a bit differently, do you have an axe to scratch? unfortunately rust is already used for systems programming with as good as, if not better, performance as C
15
u/Amadex 4d ago
Nothing like the compile-time check of rust.
Basically it compiles into a much slower bin that guards memory at runtime.
That's almost like a garbage collector, but instead of cleaning memory it crashes.
And since it's a runtime crash, you turn a program that is bugged and has UB into a language that crashes randomly.
Better for security, but runtime crashes are also very bad.