Yes, great blog worth the wait.
Feels a bit unfair that most of the “Rust gains” in terms of speed and binary size are LLVM flags they could have used to with Zig.
For the safety aspect, it seems that their problem space is inherently complicated because of the JS objects having complicated lifetimes.
I think that’s one of the hardest gotcha with Zig, is that if you do C++/Java but in Zig you’re gonna have a hard time.
But that’s style is very pervasive, even my own code has a lot of alloc(foo); defer/errdefer free(foo)
What you need is architecture your programs around a few independent arenas, but this is not what people learned and it requires more whiteboard thinking.
I hope something good comes out of it and it leads to improved Zig. Eg this issue mentionned in the blog post Block stack allocations do not disappear at end of block scope · Issue #23475 · ziglang/zig · GitHub