如果说 Rust 追求的是安全与可靠,那么 Zig 吸引开发者的地方,或许是另一种理念:让程序的行为尽可能显式,让复杂性尽可能少。
近日,开发者 Anna Liberty 分享了自己重新使用 Zig 四个月的体验。此前她主要用 Rust,如今却发现自己正逐渐把 Zig 当作首选语言。
她最欣赏的,是 Zig 对内存分配和 I/O 的设计:需要分配内存,就显式传入 allocator;需要与操作系统交互,就显式传入 I/O 参数。一段代码是否会分配内存、是否会产生外部副作用,全都摆在明面上。判断起来轻松了,写测试也灵活多了。
Zig 还有几个让人心动的地方。编译期计算 comptime 把元编程和预计算自然揉在一起;内置构建系统足够强,甚至被 Uber 拿去构建其他语言的项目;依赖管理则推崇「能不加依赖,就不加依赖」。
更让人期待的是增量编译。改完代码,编译器尽量只处理发生变化的那部分,反馈近乎即时,写起来手感很顺。
当然,Zig 离成熟还有距离:标准库仍在变动,文档不够完善,与生命周期相关的错误也需要编译器给出更多辅助。距离 1.0 稳定版,还有一段路要走。
但这恰恰是 Zig 最值得关注的地方。它不是在简单复制 Rust 或 C,而是在重新思考系统编程语言到底该怎么设计。
语言的竞争,从来不只是安全与性能的竞争。归根结底,也是复杂性应该由谁来承担的竞争。
原文:Four Months of Zig - https://gracefulliberty.com/articles/four-months-of-zig/
|