21CTO导读:一位软件工程师重返Zig,并且将几个项目全部用Zig重写。
Anna Liberty 在多年搁置之后,用四个月的时间重新编写 Zig 程序。她用Zig做了三个项目,还参加了由Zig语言创造者 Andrew Kelley 出席的 Zig Day 聊天会议,她确信 Zig 是自己的首选工具——尽管还和一些语言存在一点差距,让她在稳定性不可妥协时仍会求助于 Rust。
Liberty 的第一个项目 snurl 面向 smallnet(Gemini、Finger、Gopher、Spartan),其作为 curl 的替代品。早期的摩擦出现在 Zig 内置的 fuzzer 上——它在默认的 zig init 模板中展示过,结果却并不完整。她还做了一个未发布的 TUI 打字竞赛程序,以及一个使用 raylib 的 n-body 恒星演化模拟器。
八月在西雅图举办的 Zig Day 上——由于人数超过预期,活动从 Bellevue 移到了 Bothell——Liberty 与 Evin Yulo 结对编程,将 Zig 标准库的 TLS 集成到 snurl 中,并与 Kelley 简短聊了聊 fuzzer项目。
Liberty 所认为Zig特别好用的地方:
build.zig.zon 的外部目录,导致一次性脚本的自动格式化失效。anyhow crate 依赖实现的 ?。zig build --watch -fincremental)只重新编译改动的单元,一直到链接,在大型代码库上也几乎感觉不到延迟。而Rust 那 10 秒的增量循环容易让人分心。Zig 的设计成就了这一点;Rust 的稳定性保证限制了这一点,目前仅支持 x86_64 Linux/macOS。有待改进的地方:
Liberty 正在把 ReTangled 项目从 Rust 移植到 Zig,以摆脱依赖膨胀并充分利用构建系统。她计划向上游贡献代码,并参加下一步在西雅图举办的 Zig Day 会议。
作者:洛逸
参考:
Zig 官网:https://ziglang.org
anyzig:https://github.com/anyzig/anyzig
Ryan Hendrickson 的 Zig Day Seattle 报道:
https://ryan.hendrickson.dev/posts/zig-day-seattle-2024/
https://gracefulliberty.com/articles/four-months-of-zig
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 微信公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。