ARTICLE · 1299892
编程已经面目全非:一位 AI 编程工具作者的 11 条断言
发布时间:2026-11-03 06:06:30 最近访问:2026-11-03 06:06:30
编程已经面目全非:一位 AI 编程工具作者的 11 条断言
程序员讨论 AI,讨论的是它会抢走多少程序员的饭碗。很少有人意识到另一件事:饭碗还在不在是一回事,碗里的东西,已经换了。AI 推翻了传统的软件开发。即使将来泡沫破灭,AI 也不可能从编程工具链里消失——它已经永久成为软件开发的一部分,再也无法移除。Thorsten Ball,一位长期在做 AI 编程工具的一线开发者,最近在 X 上发了一条长文,讲 AI 到底改变了编程的哪些方面。他写过《Writing An Interpreter In Go》和《Writing A Compiler In Go》两本书,如今在 Sourcegraph 做 AI 编程工具,所以,他的观点还是有参考意义的。他的观点非常激进,有很多大胆的断言。我第一反应是想反驳其中好几条,但读完再想一遍,发现大部分不是在预言未来,而是在描述已经发生的事。下面按他的顺序整理这 11 条,每条后面附上我的看法。01 代码审查将消失
人工审查代码已经没意义了。因为人类跟不上 AI 生成代码的速度,无法在合理的时间内,发现 AI 代码中的 Bug。人类未来只能审查整个系统的组成或架构是否合理,而绝不会像现在这样,通过 PR 逐行审查代码。我的看法:这一条正在发生。现在很多团队的 PR 已经变成"AI 写、AI 审、人扫一眼"。人的注意力会往上移一层,从"这行对不对"变成"这个模块该不该存在"。
02 单元测试可能会消失
AI 可以随时改变代码的整个实现,再去测试一个个代码单元,就没意义了。也许下次迭代,整栋楼就会重建,何必再去检查单块砖头。将来的项目可能只有接口测试、集成测试、系统测试,而不会保留单元测试。我的看法:这是我认为最激进、也最想反驳的一条,已经有人跟我一样,持相反意见了。单元测试真正的价值不是"检查砖头",而是"把需求钉死"。只要还需要人来确认软件有没有做对事,这一层就删不掉。更可能的结局是:单测不再是人写的,而是 AI 顺手生成的副产品。
03 软件开发的重点不再是写代码
代码将来由 AI 负责,程序员的工作重点将移到代码以外的其他环节:如何用软件解决业务问题、了解软件如何实现、如何发布软件、如何收集反馈等等。我的看法:这条最实在,也最值得现在就照着做。写代码的时间占比越低,"把问题说清楚"的能力就越值钱——而这件事恰恰没法外包给 AI。
04 Bug 的性质也变了
大多数 Bug 不再是代码 Bug,而是需求提错了或表达不准确。我的看法:同意。我这两年遇到最难查的问题,几乎都不是代码写错,而是"当初理解错了要做什么"。当代码生成成本趋近于零,错误的成本就全部集中到了输入端。
05 软件开源不再能提升质量
以前,代码开源的一个理由是"只要关注的人足够多,所有 Bug 都能被发现"。这句话依然成立,但是现在即使你不开源,AI 也能帮你发现 Bug。我的看法:开源提升质量的理由弱化了,但开源的其他理由——可审计、可迁移、避免被锁死——反而更重要了。这条只说对了一半。
06 敏捷编程会死亡
敏捷编程的各种方法,比如 Agile、Scrum,都意义不大了。AI 的生成速度决定了项目的开发时间,你所要做的就是把工单直接推给 AI。我的看法:Scrum 里真正有价值的部分是"短周期拿到反馈",而不是站会和故事点。反馈循环不会死,只会变快。死的会是那些为了协调人类排期而存在的流程。
07 项目分工将改变
以前,项目组一般包括三种角色:项目经理、设计师、工程人员。以后,这种三元架构将消失。有了 AI,一个人可以兼任多个角色。我的看法:分工不会消失,只会重新分层。三个人干三个人的活,会变成一个人带三个 AI 干三个人的活——但"谁来拍板、谁来负责"这个问题,AI 回答不了。
08 "好代码"的概念将消失
以前,"好代码"的标准是便于人类阅读理解、方便重构、开发维护效率较高的代码。但是,你已经不读代码、不直接修改和维护大部分代码,"好代码"的存在前提就消失了。我的看法:这是整篇里最刺痛的一条。我们这代程序员的职业自豪感,有很大一部分建立在"写得漂亮"上。但值得追问一句:不读代码的是谁?系统出事的那天凌晨,还是得有人读。前提消失的是"大部分",不是"全部"。
这也是用户最不认同的一点,很多人都在下方留言反驳:09 代码风格规范和 linter,也没意义了
AI 会在乎代码风格吗:每行不超过 80 个字符、有没有换行符、缩进是 tab 键还是空格键?我的看法:tab 还是空格这场打了二十年的仗,可能真的要以"没人关心"收场了。但规范里有一类不是审美问题,而是安全问题——那部分不会消失,只会从 linter 挪到审查规则里。
10 UI 将变得不重要
一方面,未来的很多 UI 是给 AI 使用的,而 AI 只需要 API,不需要精致的 UI。另一方面,如果代码的生成速度极快,那么用户界面将实时生成。许多 UI 之所以存在,是因为软件无法确定你想要什么。菜单、设置页、仪表盘、过滤器,都是为了帮助用户快速确定需求。用户通过语言明确了需求,AI 就可以实时为他生成定制的 UI。我的看法:前半段我完全同意——给 AI 用的界面,确实只会剩下 API 文档。后半段存疑:界面不只是"确定需求"的工具,它还是"让用户知道系统能干什么"的说明书。一次性生成的界面,很难建立稳定的肌肉记忆。
11 Token 为王
谁能够负担更多的 Token,谁的软件就更好。如果你没有足够的 Token,你就开发不出最优秀的软件。我的看法:这条最冷,也最真。当编码从"人的时间"变成"算力",软件质量就开始和预算挂钩了。它会带来一个我们不愿意面对的结果:软件开发的差距,会从能力差距变成账单价差。
这 11 条里,有些是已经发生的现实,有些是押注未来的判断,还有些——比如第 2 条、第 10 条——我到现在也不认同。但有一条我完全同意:这些变化不依赖泡沫。泡沫破灭影响的是估值和融资,不影响已经装进工具链里的东西。就像当年没人因为互联网泡沫破裂而把搜索引擎下掉。真正的分水岭不是"会不会用 AI 写代码",而是你还在用旧地图找新大陆。代码生成这件事,已经被解决得差不多了。剩下那些没被解决的——定义问题、判断对错、承担责任——恰恰是过去被我们当成"杂事"的部分。补一句:他原文其实不止这 11 条,还有"终端会死""写代码这门手艺会消失"这类更狠的判断。想看全的,建议直接读英文原文。当然也有些人对此提出了不同的看法,比如下面这2条,我非常认同:
以上,你最认同哪一条?最不能接受哪一条?评论区聊聊。
参考资料
英文原文:Thorsten Ball,What I believe about the future of software development— https://x.com/thorstenball/status/2101305394190557466本文部分观点摘录自:阮一峰,《科技爱好者周刊》第 416 期:编程已经面目全非— https://www.ruanyifeng.com/blog/2026/10/weekly-issue-416.html