Zig 编程语言已正式宣布退出 GitHub,并将其主代码仓库迁移至 Codeberg。此举源于对 GitHub 工程质量急剧下滑以及平台对人工智能工具的激进推广感到不满。这是近来我所见到的开发者对 GitHub Copilot 最直接、最尖锐的一次抨击。
Zig 软件基金会主席兼首席开发者 Andrew Kelly 在公告中表示,早在七年前微软收购 GitHub 的那一刻起,倒计时就已经开始。他指出,最大的问题在于 GitHub 的优先事项和工程文化已彻底腐化,平台因臃肿的 JavaScript 框架而变得迟缓且故障频发。
压垮基金会的最后一根稻草似乎是 GitHub Actions。Kelly 称其漏洞“不可原谅”,并指出该功能已被完全忽视。他特别提到了 GitHub 首席执行官曾对员工发表的言论:“你要么拥抱 AI,要么就退出你的职业生涯。”
Zig 团队注意到,GitHub Actions 开始实行他们称之为“氛围调度”(vibe-scheduling)的机制 —— 看似随机地选择任务执行。这一问题叠加其他 bug,导致他们的持续集成(CI)系统严重积压,甚至连主分支上的新提交都无法得到及时检查。与其耗费捐赠资金购买更多 CI 硬件来勉强绕过日益崩坏的基础设施,Zig 决定彻底更换代码托管平台。
Kelly 特别指出了一个长期存在的问题:名为 safe_sleep.sh 的脚本。该脚本于 2022 年 2 月引入,旨在替代基础的 POSIX sleep 命令,目的是让 Actions 运行器能安全地暂停执行。然而,其中的 bug 十分明显:如果任务恰好未在循环本应返回的那整整一秒内检查时间,脚本就会以 100% 的 CPU 占用率无限运行下去。
Zig 核心开发者 Matthew Lugg 指出,在高负载的 CI 机器上,这个问题极易触发。在 Zig 的 CI 系统中,他们观察到多个进程连续运行数百小时,悄无声息地导致两个运行器服务瘫痪数周之久。
此次迁移也直接针对 GitHub(及其母公司微软)对 AI 的执念。Zig 软件基金会奉行严格的“禁用大语言模型(LLM)”和“禁用 AI”政策。基金会认为,GitHub 正在强行向所有用户推广诸如“用 Copilot 提交 Issue”之类的功能,这已导致项目内部出现政策违规行为。
GitHub Sponsors(GitHub 赞助计划)或许是许多人不愿离开的原因,也是目前尚未出现大规模迁移潮的关键因素。该产品曾是 Zig 早期筹款成功的关键,至今仍构成其收入的重要部分。
不过,Zig 项目已将迁移变为永久性举措:其 GitHub 仓库现已设为只读状态,新的官方仓库托管在非营利性 Git 托管平台 Codeberg 上。为避免供应商锁定,团队采取了简洁的迁移策略 —— 所有历史 Issue 和 Pull Request 保留在 GitHub,但新 Issue 将从编号 30,000 开始在 Codeberg 上创建,以确保编号清晰无歧义。
Zig 并非孤例。Dillo 浏览器项目的创建者也正计划离开 GitHub,理由包括平台对 JavaScript 的过度依赖、可用性持续下降,以及对大语言模型和生成式 AI 的过度聚焦。
显然,GitHub 当前的核心战略是通过 Copilot 实现商业化。微软 CEO 萨提亚·纳德拉(Satya Nadella)曾表示,Copilot 拥有超过 1500 万用户,贡献了 GitHub 年度收入增长的约 40%。然而,我认为,为了 AI 收入而牺牲核心开发者体验,是一个将导致大型项目失去信任的重大错误。