一门被寄予厚望的C语言继任者,正在把最坚定支持它的工业界用户推向对手。2026年下半年,系统级编程语言Zig陷入了诞生十余年来最严峻的信任危机。从标杆项目Bun仅用11天就将底层代码从Zig重写为Rust,到2026年10月发布的0.17.0版本继续大面积破坏向后兼容性,再到全面封杀AI辅助编程并迁离GitHub,科技评论界甚至给出了Zig项目正在走向死胡同的严厉批评。这场风波暴露出的核心问题是,当一门开源语言走过早期探索进入深水区,维护者追求极致纯粹的手工原教旨主义,正在与现代商业工程渴求的稳定性和高效率发生剧烈碰撞。
标杆项目11天倒戈与公开决裂
Zig过去几年最响亮的商业名片,当属高性能JavaScript运行时Bun。Bun不仅用Zig编写核心代码、证明了这门语言具备构建大型生产软件的潜力,还长期为其提供资金捐赠与生态背书。但这段蜜月在2026年7月8日戛然而止。Bun创始人Jarred Sumner宣布放弃Zig,并于8月20日在Bun 1.4版本中正式交付了由Rust重写的新底层。

压垮骆驼的稻草是工程复杂度与工具链摩擦。Bun团队在将JavaScriptCore垃圾回收器与Zig的手动内存管理结合时,频繁遭遇释放后使用、双重释放和内存泄漏等生命周期漏洞。单靠程序员自觉难以根除隐患,而Rust编译器强制的所有权检查与Drop自动清理机制,能提供更早的确定性保障。为了维持开发,Bun此前不得不自己维护魔改版的Zig编译器,与上游合并代码时的摩擦更让团队不堪重负。在Claude的辅助下,Bun团队仅耗时11天就完成了向Rust的初步移植。
面对标杆用户的体面告别,Zig创始人Andrew Kelley在7月9日给出了一份火药味十足的公开回应。他在个人网站发文,将问题归咎于Bun自身的工程实践、管理文化与商业决策,质疑11天生成式重写的代码正确性以及Bun关于模糊测试的说法,甚至表示基金会为这段关系的结束感到解脱,将Bun视作一种负资产。尽管文章结论事后经过多次修改并承认早期措辞带有情绪,且社区维护者也指出11天重写掩盖了后续偿还Rust技术债的漫长成本,但这种公开攻击昔日头部赞助者与使用者的姿态,依然让外界看到了核心团队在治理上的不成熟。
升级即重构的0.x无间道
如果说失去Bun是一次公关危机,那么长期缺乏稳定性承诺则是悬在所有Zig开发者头上的利剑。截至2026年11月11日,Zig最新稳定版是11月2日发布、11月3日公告的0.17.1版本(修复了0.17.0之后的57个以上问题),开发主分支推进到0.18.0-dev,但官方依然没有给出1.0版本的发布时间表。软件行业不乏长期停留在0.x版本却极度稳定的工具,例如Go语言编写的打包工具esbuild。但编程语言是整个生态的底层基础设施,编译器、标准库和构建系统的每一次接口变动,都会迫使下游成百上千的库与应用停工重写。

翻开Zig近期的更新账单,开发者面对的是一场持续的迁移苦役。在0.15.1版本中,官方掀起了被称为Writergate的I/O与标准库大改,重写了缓冲Reader与Writer,并直接移除了async/await与usingnamespace。到了2026年4月14日发布的0.16.0版本,团队再次引入Io接口实例、移除旧版Reader API并废弃了@cImport。而在2026年10月2日上线的0.17.0版本中,除了重构构建系统,官方还改变了数组与向量的@bitCast语义。
- 风险.Zig官方在0.17.0发布说明中明确警告,
@bitCast的语义改动可能在编译不报错的情况下静默破坏现有代码。这意味着企业升级编译器后,面临的不再只是语法报错和接口改名,而是生产环境里极难排查的隐蔽逻辑篡改。
对于正在评估或使用Zig的工程团队而言,面前只剩下两个糟糕的选项:要么将项目锁死在旧版编译器上孤立无援,要么每隔几个月抽调核心研发人力,跟着上游维护者的设计洁癖把代码库重写一遍。
逃离GitHub与封杀AI的双面真相
真正让这场争议演变为开源理念冲突的,是Zig在代码托管与开发工具链上的激进收缩。2025年11月26日,Zig宣布将主仓库从GitHub迁至由德国非营利组织运营的Codeberg(底层基于Forgejo),原GitHub仓库被设为只读且不再同步镜像,Codeberg上的Issue编号直接从30000开始以防混淆。紧接着,Zig在行为准则中祭出了严苛的AI贡献禁令,规定在Codeberg组织、IRC和开发Zulip中全面禁止大语言模型生成的代码与文本,连AI辅助编辑、翻译、头脑风暴乃至使用大模型排查Bug都被一刀切封杀,且任何语言提案必须先获得核心团队成员支持。

在批评者眼中,这是维护者将个人意识形态凌驾于实用性之上的铁证。毕竟Codeberg曾多次被开源社区如CachyOS论坛的用户诟病连接不稳定,而拒绝开发者用AI理解陌生编译器代码并修复Bug,无异于将开源协作变成了核心团队布置的家庭作业,违背了Zig早期承诺的专注于调试应用而非调试语言知识。但从Zig核心维护者的视角审视,这两项饱受抨击的决策背后,其实是独立非营利开源项目在巨头基础设施劣化与垃圾代码洪流下的被迫自卫。
Zig逃离GitHub有着确凿的技术诱因。维护者Matthew Lugg曾详细记录过GitHub Actions持续集成服务的底层故障,其actions/runner中的safe_sleep.sh脚本存在死循环漏洞,会占满单核CPU长达数百小时,直接阻塞任务队列直至主分支提交完全无法检测。不愿耗费社区捐赠资金去买硬件填补商业平台漏洞的Zig团队,这才选择了出走。同时,Kelley明确表示离开GitHub能减少Copilot功能诱发的违规提交。在维护者看来,审核低质量Pull Request的成本极高,与其在AI生成的海量修补代码中耗尽精力,不如只投资于那些愿意深入理解编译器内部机制的长期贡献者。
当AI把逃离一门语言的成本压低到11天,任何消磨开发者耐心的折腾都将遭到更快反噬。
这正是2026年开源软件工程最刺眼的认知落差。Zig核心团队的每一项防御措施在内部逻辑上都能自圆其说,但合在一起传达到用户端,却构成了极高的准入壁垒。当AI编程工具已经能帮Bun在11天内完成跨语言换血,同时Rust又提供了确定性的内存安全与稳定承诺,Zig要求用户一边忍受无休止的接口重构,一边放弃现代AI辅助工具去手工研读源码,实际上是在亲手推开那些只想用它把软件造出来的工程师。
- 建议.正在使用Zig的商业团队,短期内应严格锁定编译器版本并重点审计0.17.0中
@bitCast的潜在静默影响;接下来需密切观察0.18版本是否会收敛破坏性更新,以及TigerBeetle、Ghostty等头部Zig项目是否会出现松动。
