最终瓶颈
摘要
一篇反思性博客文章,探讨了代码生成中AI加速如何压倒审查流程,在软件工程中创造了新的瓶颈。并与历史上的工业瓶颈进行了类比,建议将抑制输入作为必要回应。
<p>从历史上看,编写代码比审查代码慢。</p>
<p>可能感觉并非如此,因为代码审查在队列中等待,直到有人抽时间来处理。但如果你比较实际操作本身,创建通常是更消耗资源的部分。在人们既编写又审查代码的团队中,从未觉得“我们或许应该放慢编程速度”。</p>
<p>因此,当越来越多的人告诉我,他们不再知道自己的代码库中有什么代码时,我感觉这里出了问题,是时候反思了。</p>
<h2>你在这里</h2>
<p>软件工程师常常相信,<a href="/2020/1/1/async-pressure/">如果我们把浴缸做大</a>,溢流就会消失。但事实并非如此。<a href="https://en.wikipedia.org/wiki/OpenClaw">OpenClaw</a>目前有超过2500个拉取请求处于打开状态。那是一个大浴缸。</p>
<p>任何处理过队列的人都知道:如果输入增长快于吞吐量,就会累积故障。此时,背压和负载削减是维持系统还能运行的唯一方法。</p>
<p>如果你曾经在星巴克被手机订单淹没,你就会明白那种感觉。店内体验崩溃了。你不知道前面还有多少订单。没有明确的队伍,没有可靠的等待时间估计,而且通常没有真正的取消途径——除非你升级问题并大声抱怨。</p>
<p>这正是许多与AI相关的开源项目现在的感受。而且,在“AI优先”的工程团队中,许多内部公司项目也越来越有这种感觉,这是不可持续的。你无法进行分类,无法进行审查,而且许多拉取请求在某个时间点后无法合并,因为它们过于陈旧。创作者可能也失去了实际合并它们的动力。</p>
<p>人们对新获得的交付速度感到无比兴奋,但在私下交谈中,我反复听到同一句话:人们也对如何跟上自己创造的步伐感到困惑。</p>
<h2>我们之前也经历过</h2>
<p>人类之前也经历过。很多次了。在AI的讨论中,我们经常提到卢德分子,但看看是什么导致了卢德运动也很有趣。马克·卡特赖特写了一篇关于工业革命时期英国纺织业的精彩文章。其核心是一个简单的想法:每当一个瓶颈被消除,下游就会产生创新。织布变快了?纱线成了约束。纺纱更快了?需要改进纤维以支持新速度,直到最终棉花需求上升,那也必须自动化。我们在航运中也看到了同样的情况,最终导致了现代自动化港口和集装箱化。</p>
<p>作为软件工程师,我们也经历过。汇编语言无法扩展到更大的工程团队,我们必须发明更高级的语言。编程语言和软件开发框架所做的很多事情,就是让我们能够更快地编写代码,并扩展到更大的代码库。但直到现在,它并没有夺走工程的核心技能。</p>
<p>虽然编写C语言肯定比汇编容易,但许多核心问题仍然相同。内存延迟仍然重要,物理定律仍然是我们的最终瓶颈,算法复杂性仍然决定了大规模软件的成败。</p>
<h2>放弃?</h2>
<p>当管道中的某个部分变得极其快速时,你需要限制输入。<a href="https://pi.dev/">Pi</a>就是一个很好的例子。除非用户受信任,否则拉取请求会自动关闭。它还采取<a href="https://x.com/badlogicgames/status/2021164603506368693">OSS休假</a>。这是一种选择:你只需限制流入。你对抗自己的新能力,直到你能够掌控它们。</p>
<h2>或者屈服</h2>
<p>但如果速度持续增加呢?在编写代码的下游,我们必须加快什么?当然,拉取请求审查明显成了瓶颈。但它实际上无法自动化。如果机器写代码,那机器最好同时审查代码。所以最终提交给人审查的内容,应该已经通过了最强大机器的最严格审查。还有什么障碍?如果我们坚持机器不能负责的基本信念,那么人类需要能够理解机器的输出。而机器将无情地交付。客户的工单将直接交给机器来实现改进和修复,再由其他机器审查,最后人类在早上盖章确认。</p>
<h2>我就是瓶颈</h2>
<p>但对我来说,感觉仍然不同。也许是因为我卑微的大脑无法理解我们正在经历的变化,未来几代人会嘲笑我们的挑战。我感觉不同,因为我在一些开源项目、一些公司和团队中看到的现象,感觉非常错误且不可持续。就连史蒂夫·耶格本人现在也对代码创建不断加快的速度的可持续性表示怀疑。</p>
<p>那么,如果我们必须屈服呢?如果我们必须为这种新型工程成为标准铺平道路呢?我们需要创造哪些条件才能使其发挥作用?我个人不知道。我带着着迷和困惑看着这一切,试图理解它。</p>
<p>因为这不是最终的瓶颈。我们会找到方法对我们交付的内容负责,因为社会会要求这一点。无感知的机器永远无法承担责任,而且看起来我们需要在机器获得这种地位之前处理这个问题。无论它们现在的行为看起来多么怪异。</p>
<p><a href="https://x.com/thorstenball/status/2022310010391302259">我现在也是瓶颈</a>。但你知道吗?两年前,我也是瓶颈。我一直都是瓶颈。机器并没有真正改变这一点。只要我承担责任并且被问责,这一点就仍然成立。如果我们成功地将责任向上推,情况可能会改变,但到目前为止,如何做到还不清楚。</p>
查看缓存全文
缓存时间: 2026/05/16 03:30
# 最后的瓶颈
来源:https://lucumr.pocoo.org/2026/2/13/the-final-bottleneck/
写于 2026 年 2 月 13 日
历史上,写代码的速度一直比审查代码要慢。
或许感觉并非如此,因为代码审查总是躺在队列里,等着有人有空去处理。但如果比较实际的行动本身,通常创建代码才是更耗时的那部分。在那些既要写代码又要审代码的团队里,从来没人觉得“我们应该写慢点”。
所以,当越来越多的人告诉我,他们不再清楚自己的代码库里到底有什么代码时,我感觉事情很不对劲,是时候反思一下了。
## 你在这里
软件工程师常常认为,只要浴缸变大(https://lucumr.pocoo.org/2020/1/1/async-pressure/),溢出的问题就会消失。但事实并非如此。[OpenClaw](https://en.wikipedia.org/wiki/OpenClaw) 现在有超过 2500 个未关闭的拉取请求。这是一个巨大的浴缸。
了解队列的人都知道这一点:如果输入的增长速度超过处理速度,就会累积出故障。这时,背压和负载降级是维持系统还能正常运行的唯一方法。
如果你曾经在一家被手机订单淹没的星巴克呆过,你就会明白那种感觉。店内的体验就崩溃了。你不知道自己前面还有多少订单。没有明确的队伍,没有可靠的等待时间估算,而且往往没有真正的取消路径,除非你升级投诉、闹出动静。
这就是现在很多与 AI 相关的开源项目的感觉。而且越来越多所谓的“AI 优先”工程团队里的内部公司项目也变成了这样,这是不可持续的。你无法进行优先级排序,无法审查,而且很多拉取请求在某个时间点之后根本无法合并,因为它们已经过期太久了。而创建者可能也已经失去了合并它的动力。
大家对新获得的速度感到无比兴奋,但在私下交流中,我反复听到同一句后续的话:人们也对自己创造的速度感到困惑,不知该如何跟上。
## 我们以前也经历过
人类以前也经历过这种情况。很多次。在 AI 的语境下,我们经常提到卢德分子,但看看是什么导致了卢德运动,其实很有趣。马克·卡特赖特写过一篇关于工业革命时期英国纺织业的[精彩文章](https://www.worldhistory.org/article/2183/the-textile-industry-in-the-british-industrial-rev/)。其核心思想很简单:每当一个瓶颈被消除,创新就会在这个瓶颈的下游出现。织布速度加快了?纱线就成了制约。纺纱更快了?纤维就需要改进以支持新的速度,直到最后棉花的需求增加,棉花采摘也必须自动化。我们在航运中也看到了同样的情况,最终导致了现代自动化港口和集装箱化。
作为软件工程师,我们以前也经历过。汇编语言无法扩展到更大的工程团队,于是我们必须发明高级语言。编程语言和软件开发框架所做的很多事情,就是让我们写代码更快,并能扩展到更大的代码库。但直到现在,它并没有夺走工程的核心技能。
虽然写 C 语言肯定比写汇编容易,但很多核心问题是一样的。内存延迟仍然重要,物理定律仍然是我们的最终瓶颈,算法复杂度仍然决定软件在规模上的成败。
## 选择放弃?
当流水线的一部分变得异常快速时,你需要限制输入。[Pi](https://pi.dev/) 就是一个很好的例子。除非是受信任的人,否则拉取请求会自动关闭。这需要有"开源假期"(https://x.com/badlogicgames/status/2021164603506368693)。这是一种选择:你限制流入。你要对抗你新获得的力量,直到你能掌控它们。
## 或者选择屈服
但如果速度还在持续加快呢?在写代码的下游,我们又需要加速什么呢?当然,拉取请求审查显然成了瓶颈。但它确实无法轻易自动化。如果机器写了代码,那机器最好同时审查代码。这样,最终呈现在人类面前的,就已经是能力最强的机器所能经历的最关键的审查了。还有什么阻碍呢?如果我们坚持认为机器不能承担责任这个基本信念,那么人类就必须能够理解机器的输出。机器将不知疲倦地发布。客户的工单将直接交给机器来实现改进和修复,再由其他机器来审查,人类则在第二天早上走个过场批准一下。
这一切听起来既没有吸引力,又让人联想到纺织业。单个织布工不再为一匹劣质布负责。如果布有问题,那责任就变成了整个工厂的,直接换掉就行了。随着我们进入一次性塑料软件时代,我们可能正在把整个责任层转移到别处。
## 我就是瓶颈
但对我来说,感觉还是不一样。也许是因为我卑微的大脑无法理解我们正在经历的变革,而未来几代人只会嘲笑我们的困境。对我来说感觉不一样,是因为我在某些开源项目、某些公司和团队中看到的正在发生的事情,感觉非常错误,且不可持续。就连史蒂夫·耶格本人现在也对代码创建速度不断加快的可持续性[表示怀疑](https://steve-yegge.medium.com/the-ai-vampire-eda6e4f07163)。
那么,如果我们需要屈服呢?如果我们需要为这种新型工程成为标准铺平道路呢?我们需要创造哪些辅助条件才能让它奏效?我不知道。我带着好奇和困惑看着这一切,试图理解它。
因为这不是最后的瓶颈。我们会想办法为我们发布的东西负责,因为社会要求我们这样做。没有意识的机器永远无法承担责任,看来我们必须在机器达到这种状态之前处理这个问题。不管它们现在的行为[看起来有多怪异](https://en.wikipedia.org/wiki/Moltbook)。
[我现在也是瓶颈](https://x.com/thorstenball/status/2022310010391302259)。但你知道吗?两年前,我也是瓶颈。其实我一直都是瓶颈。机器并没有真正改变这一点。只要我还承担责任、还需要为结果负责,这一点就不会改变。如果我们能够将责任向上推,情况可能会改变,但到目前为止,如何做到这一点还不清楚。
本文标签:[ai](https://lucumr.pocoo.org/tags/ai/)
[复制为 markdown](https://lucumr.pocoo.org/2026/2/13/the-final-bottleneck.md) / [查看 markdown](https://lucumr.pocoo.org/2026/2/13/the-final-bottleneck.md)
相似文章
工程师瓶颈已转移——我们尚未准备好
文章指出,传统的软件工程瓶颈已转移至新领域,但行业在招聘与培训实践上尚未做出相应调整。
我决定回归手写代码
作者在重构一个 Kubernetes 仪表盘工具时反思道,虽然借助 AI 进行“氛围编程”(vibe-coding)能加速功能开发,但在缺乏人工监督的情况下,往往会导致架构臃肿和技术债务。
试图彻底理解AI到底有多快
一篇个人反思,质疑AI对现实世界产生影响的真实速度,认为官僚体系、民主制度与物理世界的惯性会延缓可见变化,尽管虚拟层面的进展飞快。
引用 James Shore
James Shore 认为,为防止技术债务不断加剧,AI 编码工具必须随产出增加而成比例地降低维护成本。
我评估了250+个真实的AI落地案例,有些结果令我意外...
作者分享了在评估250多个真实AI落地案例中的洞察,指出工程和财务领域处于采用领先地位,而大多数成果侧重于提升速度,而非降低成本或增加收入。