跳转至

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains (2026-05-27, gemini-3.5-flash)

1. 导读

在主流技术界被大模型、云原生与资本催熟的“敏捷开发”彻底统治的今天,Andrew Kelley 治下的 Zig 语言像是一个来自黄金时代的异类。作为近年来最受瞩目的系统级编程语言之一,Zig 已经悄然成为 Bun(高性能 JavaScript 运行时)、Ghostty(现代终端模拟器)和 TigerBeetle(分布式金融数据库)等前沿底层项目的动力心脏,甚至连 Uber 也在利用其工具链解决复杂的跨平台编译难题。然而,在诞生十余年后,这个在 Stack Overflow 开发者调查中名列前茅的语言却始终没有发布 1.0 正式版,其基金会甚至在 2025 年底做出了撤离 GitHub、全面禁止 AI 贡献代码等一系列违背主流商业直觉的决定。在这场深度对话中,Andrew Kelley 展现了一位系统级工匠的极端纯粹与偏执,他不仅是在探讨如何构建一门语言,更是在对现代软件工业的浮躁病灶进行一次不留情面的外科手术。

2. 核心观点

Andrew Kelley 的核心世界观可以总结为对“软件手艺人(Craftsmanship)”精神的绝对复归,以及对现代软件工程中“糟糕即更好(Worse is better)”平庸哲学的彻底否定。他认为,编程语言的终极使命是让开发者重夺对物理硬件的绝对控制权,而现代技术栈通过层层抽象和黑盒依赖,剥夺了程序员与 CPU 直接对话的权力。这一世界观在当下的争议性在于:在全行业高呼“AI 自动编程”和“快速迭代”的浪潮下,Kelley 却在反其道而行之,选择用极度克制的资金、极小的团队、极度低效的“纯手工”代码审查,去换取一种几近偏执的架构纯洁性。他宁可让 1.0 版本的到来无限期延后,也绝不在技术债务和治理妥协上让步半点。

围绕这一核心世界观,Kelley 提出了以下五个穿透行业迷雾的关键判断:

Zig 的定位是 C 语言的“无损替代者”,它在提供现代安全特性的同时没有剥夺任何底层控制力

现有的 C 语言替代方案(如 Go 或 Rust)在解决 C 语言安全隐患的同时,都无可避免地让开发者付出了“隐性代价”:Go 引入了垃圾回收器(Garbage Collector),导致其无法满足数字音频工作站(DAW)等对实时延迟有严苛要求的场景;Rust 则引入了极其复杂的类型系统与所有权生命周期,使得代码重构常常伴随着级联式的编译报错。Zig 走了一条独特的路——它既保留了 C 语言式的显式内存布局与极致控制力,又通过引入 comptime(编译期代码执行)、改进的错误处理机制以及显式的内存分配器(Allocator)交互,从根本上消除了 C 语言的致命缺陷。

解绑 LLVM(LLVM Compiler Infrastructure)是实现极致开发体验的“成人礼”

尽管 LLVM 在早期扮演了 Zig 的“辅助轮”,但 Kelley 坚信,核心产品绝不能依赖外部的关键路径。在 Killer Queen 这款街机游戏的开发中,开发者因为依赖 Unity 物理引擎而导致无法升级版本的教训,让 Kelley 下定决心开发 Zig 专属的 x86 后端。摆脱 LLVM 限制后,Zig 释放了其真正的杀手级特性:增量编译。在完全自主可控的编译后端支持下,即使是百万行级别的巨型代码库,Zig 也能在 50 毫秒内完成增量编译并生成全新二进制文件,这在 LLVM 生态中是绝对无法想象的。

严厉禁止 AI 生成的代码合并,是维持开源项目高智识密度的“防火墙”

在 Zig 社区,所有源自大语言模型(LLM)的代码提交和 Issue 被一律视为“毫无价值的垃圾(Invariably Garbage)”。Kelley 提出了“贡献者扑克(Contributor Poker)”这一概念:开源项目进行代码审查的核心价值在于“师徒制(Mentorship)”的智力投资,通过耗费核心团队的精力,将业余贡献者培养为未来的核心开发者。而使用 AI 生成代码的“顺手提交者(Drive-by Contributors)”不仅无法在审查中获得真正的技能成长,反而用低质量的代码“洗白”套路侵占了核心团队极其有限的审查带宽,对开源生态构成了实质性的“公地悲剧”。

501©(3) 非营利架构优于 501©(6) 的“大厂联盟”模式,是维持技术决策独立性的唯一防线

与 Rust 基金会(属于 501©(6) 商业联盟,本质上是 Amazon、Meta、Microsoft 等巨头游说与利益分赃的工具)不同,Zig 软件基金会(ZSF)作为 501©(3) 慈善组织,其运营成本极低(每年约 67 万美元,仅包含 Kelley 一名员工及 5 名全职合同工)。多元化且分散的个人与企业捐赠,使 Zig 拥有了对任何单一赞助商说“不”的底气。这种财务上的自主性,是 Zig 能够顶住市场压力、拒绝在未成熟时发布 1.0 版本、甚至在 2025 年因为持续集成(CI)服务器兼容问题而果断放弃 GitHub 转投 Codeberg 的底层支撑。

终身仁慈独裁者(BDFL)模式在语言设计阶段的效率与一致性远超委员会民主制

C++ 等语言之所以变得臃肿且充满历史包袱,是因为民主制委员会在面对不同利益诉求时,总是倾向于妥协,最终产出“既要又要”的折中产物。Kelley 认为,卓越的软件需要单一、连贯的愿景。虽然民主制度在社会治理中具有天然的正义性,但在软件工程的精雕细琢阶段,委员会的民主妥协往往是系统优雅性的毒药。


这五个判断构成了一条严密的逻辑链条:要打造一门能生存 50 年的系统级语言(判断一),就必须在技术上实现绝对的自主可控,不惜代价造自己的编译器轮子(判断二);为了支撑这种长周期的技术长征,必须在治理上采用极其独立、不受资本掣肘的非营利架构与集权决策机制(判断四、五),并主动建立高标准的社区过滤机制以阻断噪音(判断三)。

3. 批判与质疑

作为行业分析师,我们必须剥离 Andrew Kelley 身上强烈的极客光环,以客观冰冷的视角审视其论述体系中的潜在暗礁。

首先,“终身仁慈独裁者(BDFL)”模式存在着难以规避的“巴士系数(Bus Factor)”风险与政治转型困境。Kelley 本人也承认,钱财和利益的流入容易让民主制度腐化,但长期的个人独裁统治在历史和组织学上同样证明是不可持续的。当 Zig 的生态成长到一定规模,如果 Kelley 出现意外或选择退休,Zig 软件基金会如何在没有建立起健康民主机制的前提下完成权力平稳过渡?“防腐”的代价如果是组织层面的极度脆弱,这显然与他“打造 50 年生命力语言”的初衷相违背。

其次,Kelley 对 AI 辅助编程的彻底排斥,可能正在让 Zig 走向自我孤立的“象牙塔”。虽然他从维护者带宽的角度解释了禁止 AI 提交代码的合理性,但他低估了 AI 在应用层(如 Ghostty 的开发)所展现出的巨大生产力释放。通过极具争议性地离开 GitHub 转投 Codeberg,以及维持极其苛刻的代码合并门槛,Zig 实际上在现代开发者生态中树立了高耸的围墙。在一个网络效应决定技术生死的世界里,这种“纯洁性偏执”极有可能让 Zig 错失成为主流基础设施的窗口期,最终沦落为一个高度精美但极度小众的“学院派”玩具。

最后,Zig 在易用性设计上的某些教条主义,涉嫌将维护者的便利凌驾于开发者的生产力之上。例如,Zig 坚持将“存在未使用的变量”视为无法通过编译的硬性错误。尽管 Kelley 辩称可以通过集成编辑器插件自动清除来解决冲突,但这本质上是将一种规范性偏好强加为了编译阻碍,极大地破坏了开发者在调试和草稿阶段的流畅感。这种设计决策体现了独裁者模式的典型弊端——将个人美学凌驾于普适的工程实用主义之上。

4. 行业视野

将 Zig 放在当前全球系统级编程语言演进的宏观坐标系中,我们可以清晰地看到两股思潮的激烈碰撞。

一方面,它是对“Rust 霸权”的一次理性纠偏。过去五年,Rust 在安全系统编程领域确立了近乎统治性的舆论地位,从 Linux 内核到主流浏览器,Rust 被视为 C/C++ 的唯一合法继承者。然而,Rust 极高的智识门槛、庞大的语言体积以及对“所有权与生命周期(Borrow Checker)”的强行拟合,在行业内部积攒了不容忽视的挫败感。Zig 的兴起印证了一个正在发生的行业反思:我们是否一定要为了内存安全而背负如此沉重的类型理论负担? Zig 证明了通过显式控制、更聪明的编译期执行(comptime)和优秀的工具链,可以在不引入 Borrow Checker 的情况下,实现极高的安全性和更自然的机器心智。

另一方面,Zig 的坚守构成了对当下“AI 原生编程(Vibe Coding)”狂热的冷酷注脚。当硅谷的投资人和创业者们宣称“未来人类不再需要写代码,只需用自然语言调教 Agent”时,Kelley 用他的行动做出了反击。他指出,真正的顶级软件(如 Linux、Blender、VLC 等)无一不是人类心智极限激荡、对物理硬件进行精细雕琢的产物。AI 时代不仅没有削弱手艺人程序员的价值,反而让那些“能够向 CPU 发出精确指令、不依赖闭源 API、追求 uncompromising perfection(绝不妥协的完美)”的底层系统工程师,成为了这个时代最稀缺、最无法被低换的资产。

5. 启示与建议

本场对话强力挑战了以下两个在当下科技界被奉为圭臬的假设: * 假设一:现代复杂软件必须依赖庞大的、由巨头控制的生态系统(如 LLVM、GitHub)才能成功。 * 假设二:代码编写效率的优先级永远高于对运行机制的深度理解。

针对不同的行业参与者,我们给出如下具体且可操作的建议:

针对系统级开发人员与技术决策者(CTO/首席架构师)

  • 不要等待 1.0,立刻将 Zig 的工具链(尤其是 zig cc / zig c++)引入现有的跨平台编译流。 如同 Uber 落地 Zig 的实践,你不需要用 Zig 重写所有业务代码,只需将其作为无依赖、开箱即用的 C 编译器,即可零成本解决 Go、C 混合项目的跨平台交叉编译痛点。
  • 在评估底层基础设施(如数据库、实时队列)时,将“资源预分配与零动态内存分配”作为关键架构指标。 借鉴 TigerBeetle 的设计思路,在实时性要求极高的场景下,应优先选择在启动时即完成全部内存申请、运行期无动态分配的软件设计,以确保延迟的高度可预测性。

针对开源项目发起人与非营利技术组织运营者

  • 审慎评估组织的法律与财务实体设计,优先考虑 501©(3) 架构以保障技术主权。 如果你的目标是维持项目的纯粹性,避免走 501©(6) 路线,防止大厂通过资金注入实质性绑架项目路线图。保持赞助商的高度分散,并将资金直接用于支付全职或合同工开发者的薪资,而非市场营销。
  • 建立明确的“抗 AI 噪音”过滤机制。 面对涌入的 AI 生成 PR,应果断提高初次贡献的门槛(例如,引入更复杂的预审核机制),将有限的维护者精力聚焦于那些真正展现出人类思考、有潜力成长为核心骨干的贡献者身上。

强信号与合理推断: * 强信号: 软件工程界对“开箱即用、无依赖的跨平台编译工具链”有着极其迫切且真实的刚需,Zig 在这一细分领域的工具链优势已无可动摇。 * 合理推断: 随着各大厂商对安全合规(如美国政府对 C/C++ 内存安全隐患的警告)要求的提高,Zig 可能会在未来 3-5 年内,在一些嵌入式和高并发边缘计算场景中,蚕食掉原本属于 C 语言的大片存量领地,但其在主流应用层的普及仍将受到生态完备度的严重制约。

6. 金句摘录

"I can do better. I can do better than C++. I can do better than Rust. I can do better than Go. I can do better than JavaScript... That was my hubris." —— “我可以做得更好。我可以比 C++ 做得更好,比 Rust、Go、JavaScript 做得更好……这就是我的狂妄自大。” 背景: Kelley 解释他为什么在尝试了所有主流语言构建音频工作站失败后,毅然决定在 2018 年辞职,赤手空拳去创造一门全新语言的初始心境。

"Those kinds of contributions are invariably garbage... We like to call it contributor poker. The whole point is that we have limited time. Who can we invest our time in?" —— “那些(AI 生成的)贡献毫无例外全是垃圾……我们称之为‘贡献者扑克’。最根本的问题在于我们的时间是有限的,我们究竟应该把时间投资在谁身上?” 背景: 针对为什么 Zig 社区对 AI 生成的代码提交采取极端零容忍政策,Kelley 尖锐地指出开源的核心是人类师徒式的技能传承,而 AI 提交者在无情压榨这一稀缺资源。

"Whenever money flows through a system, the system becomes corrupted." —— “一旦资金开始在系统内部流动,系统就无可避免地走向腐败。” 背景: 谈及为什么 Zig 必须坚持单一的独裁领导而非民主委员会制时,Kelley 表达了他对资本入侵技术决策、导致设计妥协的深层警惕。

"I don't want to be surprised by the absence of a bug. That's a horrible quality bar to believe in." —— “我可不想因为某个软件‘竟然没有出现 Bug’而感到惊喜。那是一个极其糟糕且可悲的质量标准。” 背景: Kelley 在批评当下的“Vibe Coding(氛围感编程/玄学编程)”和对大模型生成代码的盲目崇拜,他认为真正的软件应当追求无可妥协的精准与完美。