There are endless debates online about Rust vs. Zig, this post explores a side of the argument I don’t think is mentioned enough.
Intro / TLDR
I was intrigued to learn that the Roc language rewrote their standard library from Rust to Zig. What made Zig the better option?
They wrote that they were using a lot of unsafe Rust and it was getting in their way. They also mentioned that Zig had “more tools for working in a memory-unsafe environment, such as reporting memory leaks in tests”, making the overall process much better.
So is Zig a better alternative to writing unsafe Rust?
I wanted to test this myself and see how hard unsafe Rust would be by building a project that required a substantial amount of unsafe code.
Then I would re-write the project in Zig to see if would be easier/better.
After I finished both versions, I found that the Zig implementation was safer, faster, and easier to write. I’ll share a bit about building both and what I learned.
Fair points; I still don’t think I’d go so far as to call it click bait.
That seems like a fairly honest headline and intro to me; it’s showing at least one case where Zig was plausibly better than Rust (even if Zig is not generally better).
In any case, happy new year!