技术圈每隔几年就会出现一门让人兴奋的新语言:语法干净、设计哲学清晰、解决了前辈的某些痛点。然后有两种结局:要么它真的成为主流(Go、Rust 走了这条路),要么它成为"有意思的小语言"——有一批忠实用户,有真实的技术价值,但永远停在边缘(Nim、Crystal、Elixir 里大多数人不熟悉的那些)。
Zig 会走哪条路?
我的判断是:大概率是第二种,除非有一两件事在接下来几年里发生。以下是理由。
一、被低估的传播路径:zig cc
讨论 Zig 的人大多聚焦在"用 Zig 写代码"这件事上,但 Zig 真正独特的增长引擎可能是另一件事:用 Zig 作为 C/C++ 的构建工具和交叉编译器。
安装 Zig 之后,你就有了一个能针对几乎所有主流平台(Linux/macOS/Windows,x86/ARM/RISC-V,甚至 WebAssembly)交叉编译 C 代码的工具链,不需要安装任何额外的交叉编译器。很多 Rust 项目用 zig cc 来编译它们依赖的 C 代码——因为配置 Rust 的交叉编译环境复杂,而 Zig 开箱即用。
这个路径的价值在于它创造了一种"先用工具,再学语言"的接触方式。你为了解决一个具体问题(交叉编译 C 代码)开始用 Zig 工具链,在这个过程中你会了解 Zig 语言本身,然后某天你开始思考"既然 Zig 工具链这么好用,要不要用 Zig 写一些模块?"
历史上有几个例子证明这条路径有效:CMake 和 Make 让很多人深入理解了 C/C++ 的构建过程,Docker 让很多人从"打包工具"入手理解了容器技术。Zig 的交叉编译能力,是一个类似的"低门槛高价值"入口。
二、comptime 的影响力已经超出 Zig 本身
即使 Zig 这门语言最终没有成为主流,它的 comptime 设计思路已经在影响编程语言社区的讨论。
comptime 的核心主张是:不需要一套独立的宏系统或模板元编程机制,只需要让普通代码能在编译期运行。这个主张的吸引力在于它的统一性——你学一套语言,它既可以在运行时执行,也可以在编译时执行,没有 C++ 模板那种"两种完全不同的语言混在一起"的割裂感。
Rust 社区在讨论 const generics 和 const eval 时,参考的思路和 comptime 高度相似。Carbon 语言(Google 的 C++ 继任者实验)在设计编译期执行机制时也有类似的方向。这说明 comptime 解决的问题是真实的,它的解法足够有说服力以至于被其他语言学习。
一门语言的影响力,不只体现在使用它的人数上,也体现在它改变了其他语言的设计方向上。从这个意义上说,Zig 已经产生了超出其用户规模的影响。
三、Bun 的意义:不只是背书
Bun 对 Zig 的意义,不只是"一个知名项目在用 Zig"。
更重要的是,Bun 证明了 Zig 能在一个对性能、稳定性、正确性都有极高要求的生产系统里运转——一个替代 Node.js 的 JavaScript 运行时,要兼容数以百万计的 npm 包,在真实用户的真实工作负载下工作。
Bun 的成功同时也揭示了 Zig 的一个实际竞争力来源:在需要和 C/C++ 代码大量互操作的场景里,Zig 的体验比 Rust 好得多。Bun 依赖 JavaScriptCore(WebKit 的 JS 引擎,C++ 代码),需要和大量 C API 交互。Zig 的 @cImport 直接导入 C 头文件,几乎没有 FFI 开销;而 Rust 的 C 互操作需要写 unsafe 代码和 bindgen 绑定,工程量大得多。
四、最大的障碍:pre-1.0 的代价
这是我认为 Zig 目前面临的最严重问题。
Zig 从 2016 年开始开发,截至 2026 年仍然没有发布 1.0。每一个主版本(0.11、0.12、0.13、0.14)都有破坏性的 API 变更。用 Zig 写的项目,每次升级 Zig 版本都需要修改代码。
这对个人项目来说是可以接受的,但对企业和团队来说是一个很高的门槛。技术选型时,稳定性是一个硬性要求——没有公司愿意把核心系统建立在一个"下个版本 API 可能完全变"的语言上。
这个问题的根本原因是 Zig 在 1.0 之前认真对待了"把语言做对"的承诺——他们宁愿继续改,也不愿意在设计上留下遗憾。这种态度在工程上是值得尊重的,但它的代价是用户必须在语言稳定之前一直处于不确定状态。
对比 Go:Go 在 2012 年发布 1.0,并承诺向后兼容——所有 Go 1.x 代码都能在未来版本编译。这个承诺是 Go 在企业里大规模采用的重要基础。Zig 需要做出类似的承诺,并且履行它,才能突破当前的局限。
五、Rust 已经赢下了心智份额
在"现代系统语言"这个赛道上,Rust 已经建立了难以撼动的先发优势。
当一个团队决定从 C/C++ 迁移到更现代的语言时,他们考虑的第一个选项几乎必然是 Rust,而不是 Zig。Rust 有 Linux 内核支持、有 Android 系统组件、有 Mozilla、微软、Amazon 等大公司的深度投入、有庞大的生态系统(crates.io 上超过 10 万个包)、有相对成熟的工具链(cargo、rustfmt、clippy)。
Zig 在这个对比里的优势是什么?学习曲线更平缓(没有所有权系统的心智负担)、C 互操作更方便、运行时开销更可控。但这些优势对大多数团队来说,不足以让他们跳过 Rust 直接选 Zig。
Zig 要扩大影响力,需要找到 Rust 明显不适合的场景,而不是和 Rust 正面竞争。目前最清晰的场景是:需要大量 C 互操作的代码(Bun 的案例)、嵌入式和无操作系统环境(Rust 在这里也能用,但 Zig 更轻量)、对 Zig 交叉编译工具链有需求的 C 项目。
六、单点依赖:一个被低估的风险
Zig 的核心语言设计,很大程度上依赖 Andrew Kelley 一个人的判断和工作。
这不是说他的判断不好——他对语言设计的直觉相当出色,comptime 就是证明。但这种依赖本身是一个结构性风险:如果他改变方向、失去兴趣、或者任何其他原因导致他减少投入,Zig 的发展速度会大幅下降。
历史上,很多有技术价值但高度依赖创始人的语言最终止步不前——不是因为语言本身有问题,而是因为缺乏可持续的社区和机构支撑。Zig 软件基金会的存在是好的迹象,但规模和资金仍然相对有限。
对比:Go 有 Google 持续投入、Rust 有 Mozilla 奠基后有独立基金会、Swift 有 Apple 支撑。这些大机构的存在不只是钱,更是人才、工具链、生态系统投入的保证。Zig 目前没有类似量级的机构支撑。
七、最终判断
把上面几点加在一起,我的预测是:
Zig 大概率会成为一门稳固的细分语言,而不是主流语言——类似 Erlang/Elixir 在并发领域的地位,或者 Lua 在嵌入式脚本领域的地位:有明确的擅长场景,有忠实的用户群,不会消亡,但不会进入大多数工程师的日常工具箱。
它最有可能站稳的领域:
- 需要大量 C 互操作的高性能系统(Bun 的路线)
- 嵌入式和实时系统(没有 GC、没有隐式分配、精确的内存控制)
- 跨平台 C 代码的构建工具链(
zig cc这条路线) - 数据库和存储引擎的底层代码(TigerBeetle 的路线)
它突破成为主流需要什么:一是 1.0 的发布加上明确的稳定性承诺;二是几个更高知名度的代表项目(比 Bun 更广为人知);三是生态系统的进一步成熟(更好的 IDE 支持、更多的库)。这几件事都可能发生,但不确定。
comptime 这个设计思路则会比 Zig 走得更远——无论 Zig 自身的命运如何,这个思路会影响未来几年其他语言的设计方向。这或许是 Zig 对编程语言领域最持久的贡献。