HeadlinesBriefing favicon HeadlinesBriefing.com

从 Rust 转向 Zig 的体验对比

Hacker News •
×

作为一名拥有七年经验的 Rust 开发者,我通过将我的 JSONPath 库 (jsonpath-rust) 重写为 zig-jsonpath 来探索 Zig。第一个惊喜是 IDE 支持:Zig 除了语法高亮外几乎没有提供其他支持,迫使我回归 CLI 工具。这反而让人耳目一新;build.zig 通过 `zig build test` 和 `zig build compliance` 等命令优雅地处理测试和合规套件。这种体验催化了我从完整 IDE 向 helix + alacritty + zellij 设置的转变。

Zig 的扁平结构理念与 Rust 的嵌套层级形成对比。Rust 鼓励文件碎片化,而 Zig 则倾向于使用简单的命名约定(如 `model_<companion>`)来组织更大、更扁平的文件。这比预期的扩展性更强,在真正需要层级结构之前可以走得更远。嵌套带来的导入摩擦阻碍了深层文件夹的使用,使得通过单文件中的区块切片进行导航出奇地有效。

来自 Rust 的函数式风格和表达性类型系统,我依赖跨语言的直觉,承认我的 Zig 决策是由 Rust 习惯而非深层 Zig 惯用语塑造的。使用 RFC 9535 的 JSONPath 规范进行对比感觉很公平 —— 这是一个真实、可用的项目,而非玩具。Zig 作为 C 语言继任者的低层级、轻量级方法令人信服,尽管学习曲线涉及摒弃 Rust 模式。

关键实体:公司:Jet Brains