在JetBrains专访中,Zig项目核心创建者Andrew Kelley深入剖析了其禁AI贡献的决策逻辑与迁移Codeberg的动因。他认为自动代码提交会侵蚀代码质量,削弱开源参与者间的社交联结,且GitHub故障及激励机制错位等问题,促使项目走向迁移。其给出拒绝AI贡献的两大核心因素:一是固定人力难以随代码量扩展,二是AI贡献带来的垃圾代码严重损害软件质量。此外,Zig将代码审查定位为人才培育的关键环节,通过筛选真正具备成长潜力的工程师,实现有限时间的高效投入,拒绝投入于无实质价值的AI生成内容。同时,Zig与Bun在理念上形成对比,Bun借助AI重写代码引发批判,Kelley指出二者差异根源在于价值观体系不同。由于GitHub持续集成失败,项目转而迁移至Codeberg,认为非营利组织能更保障稳定性,契合其追求稳定的发展需求。此外,Zig诞生于应对音频播放、实时渲染等硬件需求的挑战,凭借摒弃自动内存管理的显式分配策略,成为多个主流项目的核心基础设施,未来仍具重要价值。
--91likeyou---
同样重要的是,Kelley 强调了 Zig 的核心教育使命。他将代码审查视为一种带教投入,只针对那些日后能成长为核心贡献者的真正的工程师:
“贡献者扑克”这一概念[编者注:将有限的审阅时间押注在那些有望成长并长期参与的贡献者身上,而非“过客式贡献者”身上]的初衷在于,我们的时间是有限的。因此,我们需要辨别:我们该把时间投入到谁身上,以帮助他们成为更好的程序员、更好的项目贡献者?而谁又可能是“过客式贡献者”?那些使用 AI 的人,总是属于第二类。不值得在他们身上投入时间。他们什么也没学到,以后也不会加入核心团队。
Zig 的这种基于原则的做法与 Bun 的做法形成了鲜明的对比。最近,Bun 在众多 AI 代理的协助下,将整个代码库从 Zig 重写为 Rust。移植代码、验证代码并提出修复方案全是由 AI 完成的。在一篇题为“我对 Bun 用 Rust 重写的一些思考”的颇具批判性的文章中,Kelley 断言:
这里的主要问题与 Zig 和 Rust 的语言特性毫无关系,而完全在于这两个项目截然不同的价值观体系。
Kelley 进一步解释说,由于 GitHub Actions 不断出现持续集成(CI)失败的问题,该项目将 GitHub 存储库迁移到了德国的非营利组织 Codeberg。他还强调,与非营利组织合作能更好地协调激励机制,因为这类组织往往更重视稳定性,而非飞速增长和盈利:
对于我们来说,GitHub 已经完全无法使用了。我们的持续集成无法正常运行了。它就这么突然停止工作了。于是我们转而采用了 Codeberg。现在,我们的持续集成服务器又恢复正常了……Codeberg 是德国的一个非营利组织。就我个人而言,我觉得非营利组织比初创公司或企业更稳定,因为企业总是追逐下一个热点,试图让下个季度的利润更高。而非营利组织只是致力于坚持做他们正在做的事,而这种稳定性正是我所追求的。
部分开发者也认同这一观点,即 GitHub 性能的下降恰好与 AI 工作负载的指数级增长同时发生。
Kelley 在采访中回忆道,他是在尝试构建一个原生数字音频工作站时构思出了 Zig 语言。JavaScript 缺乏底层硬件控制能力;Go 引入了“停止世界”式的垃圾回收暂停机制,这损害了实时音频播放的要求;当时的 Rust(1.0 版本发布前)因借用检查器带来的阻力,导致 UI 字体渲染问题持续数周无法解决;而 C++ 则不断地产生内存损坏错误,耗费了大量调试时间。
Zig 语言摒弃了自动内存管理,转而采用显式内存分配器。Kelley 于 2018 年辞去工作,专心开发 Zig。Zig 成为 Ghostty、低延迟金融数据库 TigerBeetle 以及 Uber 交叉编译基础设施的基础。
要了解文中所述观点的更多细节,以及本文未涉及的其他话题,建议开发者观看完整的 JetBrains 访谈视频。
:
🔥 热词:#AI · #Kelley · #Zig · #Andrew · #GitHub · #专访 · #他为何创建 · #Zig、禁止