How (memory) safe is Zig? (2021)
a year ago
- #zig
- #memory-safety
- #rust
- Zig的内存安全性常被拿来与C或Rust比较,但它无法像Rust那样系统性地预防内存不安全问题。
- Zig引入了临时运行时检查(如边界检查、禁止空指针),但缺乏Rust那种可组合的编译时证明机制。
- Zig通过分配器API检测释放后使用、泛型和更安全的默认值等特性,相比C语言有所改进。
- 与Rust显著减少此类问题不同,Zig在复杂项目中仍常见内存安全漏洞。
- Zig的未来可能在于沙盒化插件(如WASM)等细分场景,其小二进制体积和低内存占用具有优势。
- Rust的内存安全性对高性能安全系统极具吸引力,但托管语言(如Java、C#)的性能正在提升。
- Zig的编译时机制提供了独特的编译时特化可能性,为未来语言设计创新带来启发。