Zig 2026:零 AI 政策、670K 基金、离开 GitHub 及 Zig 为何还不是 1.0 - Andrew Kelley Explains

2026-06-01

jiacai2050 | 2026-06-01

本文部分内容由 AI 辅助生成,已经作者审阅校对,仅供参考。

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

1. 导读

Andrew Kelley 在 2018 年辞去工作,全职打造一门编程语言。八年过去,Zig 驱动着 Ghostty 终端模拟器、TigerBeetle 金融交易数据库,并被 Uber 用于跨平台编译,在 Stack Overflow 年度调查中位列最受推崇语言前五。然而,它至今没有 1.0 版本。如果这是一家创业公司,投资人早已失去耐心。但 Kelley 选择了另一条路:将 Zig 置于一个年收入仅 67 万美元的非盈利基金会之下,严格拒绝 AI 生成的代码贡献,甚至为保持 CI 正常运行而将主仓库从 GitHub 迁往 Codeberg。

这是一场关于“不妥协”的极端实验——对用户零妥协,对投资人零依赖,对 AI 时代零迎合。Kelley 究竟是在建造一座供奉计算机的圣殿,还是在精心打磨一件无人问津的艺术品?他的答案,可能决定我们对“成功的编程语言”的全部认知是否需要重写。

2. 核心观点

Andrew Kelley 的核心世界观是:编程语言的终极目标不是取悦最多用户或最快达到 1.0,而是成为用户与计算机硬件之间最纯粹、最忠诚的接口。这个观点之所以有争议,是因为它公然挑战了“更差即更好”的行业共识——PHP 和 Go 靠着“先发布、后修复”的策略获得了巨大市场,而 Kelley 宁愿让 Zig 长期停留在预发布阶段,也要确保 1.0 时没有一丝遗憾。在他看来,语言的声誉比规模更重要,独立性比速度更优先。

  • “Zig 的杀手特性是工具链,而不是语言本身。” Kelley 认为,Zig 最与众不同的地方并非语法或内存模型,而是一套完全自包含、无需系统依赖的编译工具链。他用“README 测试”来量化这个主张:一个项目最简单的贡献门槛就是 zig build 一行命令,在所有操作系统上都能工作。Uber 实际使用的正是 Zig 的交叉编译能力来解决 Go 代码中 C 依赖的跨平台问题——这不是对语言特性认可,而是对其工具链工程能力的最高背书。

  • “Zig 比 C 更像 C。” Kelley 给出了一个反直觉的判断:C 语言自身的整数溢出语义(有符号整数未定义行为、无符号整数回绕)实际上是一种能力的缺失。Zig 允许程序员精确选择所需的行为——回绕、承诺无溢出等——这在 C 中无法做到。他强调,取代 C 的唯一路径不是提供“足够好”的替代品,而是更严格的 C 本身。Zig 在嵌入、内核、WebAssembly 等所有 C 能到达的领域都保持可用,而未牺牲任何对硬件的直接控制。

  • “Zig 与 Rust 的关键差异在于对程序员心智模型的假设。” Kelley 明确区分了两种思维:Rust 引导你“设计类型系统来让编译器满意”,Zig 引导你“直接告诉 CPU 做什么”。他承认 Rust 在类型安全上提供了更多保证,但认为 Zig 在代码可读性和内存布局优化上更胜一筹。TigerBeetle 的案例——通过预分配所有内存实现极致可预测延迟——就是 Zig 哲学在实际中的体现:你手动控制一切,不依赖 RAII 或引用计数。

  • “AI 生成的代码贡献总是垃圾,而且有负价值。” 这不是一个关于技术可行性的判断,而是一个关于项目治理的决断。Kelley 提出了“贡献者扑克”概念:当有限的评审时间需要在“值得投资的未来核心成员”和“一次性的 AI 投喂者”之间分配时,后者的价值为零。更关键的是,AI 用户不会通过参与开源项目学习和成长,而这恰恰是混合项目的主要目标之一。他的结论掷地有声——“The idea of contributor poker is that we have limited time.”

  • “BDFL(仁慈的终身独裁者)模式不可持续,但现在别无选择。” Kelley 坦承,当资金流经一个组织,腐败就会发生。民主过程在金钱面前脆弱,而强力领导能暂时抵抗,但无法保证继任者同样正直。他公开反思“君主制”的弊端——用欧洲历史来类比,承认民主才是长期可持续的答案,只是目前尚未找到防止金钱腐蚀的机制。

这些观点构成了一个严密的逻辑链:工具链的独立性保障了用户对计算机的完全控制,拒绝 AI 贡献保护了社区的成长机制,BDFL 模式确保了语言设计的一致性,而这些共同服务于一个非商业化的目标——让 Zig 成为“送给世界的无附加条件的礼物”。Kelley 的核心张力在于:他用最傲慢的个人权威去追求一种最不自私的结果。

3. 批判与质疑

Kelley 的论述体系中存在若干需要审慎审视的假设。

第一个未经验证的假设是“不妥协必然导向更优结果”。 Zig 对性能、内存控制、代码质量的极致追求确实吸引了一批顶尖开发者,但这是否意味着 Zig 最终能比 Rust 或 Go 获得更广泛的生态?Kelley 多次提到“50 年”的时间尺度——这本身就是一种无法在当下验证的承诺。一个更危险的可能是:当 Zig 最终到达 1.0 时,开发范式可能已经发生了根本性变化(例如 AI 辅助编程成为主流),而 Zig 的“人机直接对话”哲学反而成为小众选择。

第二个被忽略的风险是财务可持续性的脆弱性。 67 万美元的年收入、5 人团队、足够“舒适”但远低于行业水平的薪资——这些数字在当下看起来很健康,但这依赖于一种社群慈善文化的存续。如果主要捐助者转向其他项目,或者在宏观经济下行时减少捐赠,Zig 的“不着急”策略将面临严峻挑战。Kelley 对 1 亿美元捐赠的回应很聪明——“我只会把它存进银行,然后 100 年不用融资”——但这本质上是用静态思维应对动态世界。

第三个值得警觉的结论是 No-AI 政策的适用范围。 Kelley 明确将 AI 生成代码定义为“垃圾”,并基于“浪费评审时间”的理由全面禁止。但 Mittchell Hashimoto(Ghostty 作者)大量使用 AI 编程的事实表明,Zig 与 AI 并非天然冲突。Kirkley 批评的与其说是 AI 本身,不如说是“不学习的贡献者”。这暗示了一个更好的政策或许不是一刀切禁止,而是区分“AI 辅助”与“AI 替代”——但识别难度显然更高。

对话结束时悬而未决的核心问题依然是:当 Kelley 离开 Zig 时,这个项目会走向何方? 他的坦诚——承认 BDFL 无法永续,但尚未找到替代方案——是本次对话中最真诚也最令人不安的时刻。

4. 行业视野

将 Zig 置于更广阔的编程语言演化图谱中,可以看到几个有趣的对照。

Zig 和 Rust 的关系类似于当年的 C 和 Fortran。 Rust 是自上而下的“安全革命”,试图通过类型系统重新定义可接受的代码;Zig 是自下而上的“回归革命”,试图在不放弃任何底层控制的前提下“修补 C 的漏洞”。这种分野让人想起 1970 年代:Fortran 提供了高级抽象但牺牲了对硬件的控制,而 C 则因“可移植的汇编语言”定位最终胜出。Zig 赌的是历史会重演——在安全工具成熟后,开发者会重新渴望直接控制。

Zig 的 No-AI 政策是开源社区对抗“AI slop”浪潮的激进代表。 越来越多的开源项目(如 Gentoo、FreeBSD)报告被 AI 生成的无关 PR 淹没。Zig 选择最严格的路——不仅禁止 AI PR,还不隐藏对 AI 编程整体趋势的批判。这与 Stripe 或 GitHub Copilot 的拥抱态度形成鲜明对比,也暗示了一个正在分化的开源世界:一边是“AI 加速一切”,一边是“人与计算机的纯粹对话值得保护”。

Zig 非盈利基金会的治理结构,是对 Rust 基金会模式的有意识对冲。 Rust 采用 501(c)(6)(商业联盟),允许 Amazon、Microsoft、Meta 等公司通过捐赠获取影响力;Zig 选择 501(c)(3)(公益组织),禁止游说活动,且刻意保持收入来源的多样性以规避单一赞助者的控制。这是对“公司控制的开源”这一行业痛点的直接回应——Kelley 在对话中多次强调“money corrupts”。

5. 启示与建议

这场对话挑战了两个根深蒂固的假设:第一,“快速迭代、容忍缺陷”是软件成功的唯一路径;第二,“拥抱 AI 工具”是每个现代开发者的必然选择。Kelley 提出了第三个可能性:刻意缓慢、主动拒绝、追求非物质的使命。

对编程语言设计者和开源项目创始人: Kelley 对 BDFL 的反思值得深思。他指出了民主和独裁之间的经典困境,但没有给出出路。如果你正在设计一个新的开源项目,需要提前思考权力交接机制——Kelley 的做法是“延后问题”,但这并非真正的解决方案。一个可行的尝试是:在早期就建立一套“渐进式民主”框架,例如将核心语法决策保留给 BDFL,而生态治理(标准库、工具链)逐步过渡到委员会。

对系统级开发者(特别是 C/Rust 使用者): Zig 的工具链哲学——zig build 一行命令即可构建——具有立即可迁移的价值。即使你目前不打算用 Zig 写生产代码,研究其自包含工具链的设计思路(尤其是交叉编译),也能改善自己的项目体验。此外,TigerBeetle 的“预分配所有内存、永不动态分配”模式,是理解“极简主义内存管理”的绝佳案例,值得在延迟敏感的场景中参考。

对社区治理者(特别是面临 AI 贡献浪潮的项目维护者): Kelley 的“贡献者扑克”框架是一个实用的评审资源分配策略。不是所有贡献都有相同价值,识别“值得投资”的贡献者的信号(学习意愿、对项目文化的理解、持续的参与)比单纯靠代码质量筛选更有效。No-AI 政策可能过于激进,但建立一套“AI 贡献披露”机制并要求贡献者证明其理解代码,是一个更温和的中间选择。

强信号:Zig 工具链的独立性和对 C 的兼容性,使其在跨平台编译和嵌入式领域有真实价值。合理推断:Zig 是否能在主流生态中获得 Rust 级别的商业采用,仍取决于 1.0 之后的生态建设—Kelley 本人承认这是目前最大的缺失。

6. 金句摘录

“The whole point is that a contributor can become a core team member eventually or they can become a more valuable contributor and this will help the project… the idea of contributor poker is that we have limited time.”

语境:当被问及为何禁止 AI 生成代码时,Kelley 揭示了开源社区最核心但常被忽视的功能——它不是“众包生产力”,而是“人才孵化器”。这个比喻把评审时间升华为最稀缺的资源,颠覆了“更多 PR 总是更好的”直觉。

“When we tag 1.0, it will be like a true uncompromising labor of love. We will not have to be stuck with any bad decisions that we had to rush to lock in.”

语境:面对为何十年未发布 1.0 的质疑,Kelley 将“延迟”重新定义为一种美德。这句话浓缩了他整个世界观的核心——匆忙的承诺是技术债务的根源,而耐心是最高级的工程策略。

“I think that burnout happens when you’re putting in a lot of efforts but you’re not seeing a lot of rewards for this effort.”

语境:被问及是否经历过倦怠时,Kelley 给出了一个出人意料的分析。他没有谈论工作强度或睡眠时间,而是将倦怠定义为“投入产出比”失衡——而他对“产出”的定义不是金钱或指标,而是用户满意度和代码质量改进带来的满足感。

“Zig is more C-like than C.”

语境:当被要求总结 Zig 与 C 的核心区别时,Kelley 用半句话完成了一场对“C 正统”的解构。C 语言的缺陷(如整数溢出未定义行为)并非底层控制的必然代价,而是设计缺失——Zig 因此可以被称为“比 C 更像 C 的作品”。

“The best apps are the ones that were made by people in their free time for a hobby… It respects me. It treats me as the boss of the computer.”

语境:被问及程序员未来是否还会手写代码时,Kelley 没有谈论生产力或效率,而是将问题重新定义为“人与设备的关系”。这段话既是计算文化的浪漫宣言,也是对 SaaS 商业模式的无声控诉。