高塔仍在升高
原文由 Armin Ronacher 于 发布,订阅该博客
我感觉有些通过 vibe coding 产出的软件改动显得有些随机、难以预料。这让我想起了勃鲁盖尔的《巴别塔》,画中对巴别塔的描绘本身就相当混乱。这个故事通常被讲述为一个关于骄傲与野心、并最终解释人们为何不再说同一种语言的故事。但它同时也是一个关于团结何以让技术进步成为可能的故事。
故事始于一次技术升级:
他们彼此商量说,来吧,我们要做砖,把砖烧透了。他们就拿砖当石头,又拿石漆当灰泥。
他们用这项技术去推进一项关乎文明的宏大工程:
来吧,让我们建造一座城和一座塔,塔顶通天
但当上帝审视这一切时,让他在意的并不是砖:
看哪,他们成为一样的人民,都是一样的言语,[…] 如今他们既做起这事来,就没有什么能拦阻他们了。1
他们力量的源泉在于协作。他们拥有共同的语言,凭借这种共同语言,他们能将各自的工作汇聚成任何单个人都无法独自完成的事物。上帝并没有收走砖块,也没有夺走他们制砖的知识。他夺走的是他们彼此理解的能力,于是建造停了下来。
有一种颇具吸引力的观点认为,AI 辅助编程意味着更强大的工具,能让我们构建更宏大的软件。在个体层面,这无疑是成立的——拥有智能体的开发者,改动代码库的能力无疑会大幅提升。但大型软件项目从来不仅仅受限于个人产出代码的速度,更受限于人们能否就自己正在改动的系统达成协同、保持一致的理解。
一个软件项目中共有的“语言”不是英语或 Python,而是对概念的含义、边界在哪里、哪些不变量至关重要、谁拥有什么、以及系统为何会是现在这种形态的共同理解。这种语言很少被完整地记录在某一个地方。它一部分存在于文档和代码中,也存在于代码评审、对话、争论,以及不得不向他人解释某次改动的经历之中。
在智能体出现之前,这种共享理解有部分是靠摩擦来维持的。如果我想改动你的存储层,通常得先读你的代码、向你提问,甚至还要与依赖该服务的另一个团队协调。这很慢,其中的许多缓慢确实是浪费,但并非全部。有一部分缓慢,恰恰是你的理解转化为我的理解的过程,也是我们借此检验彼此是否仍对系统如何运作保有共识的过程。这种摩擦让人与人之间保持同步。
智能体消除了大部分这种摩擦。我可以让智能体加上 OAuth,你可以让它加上缓存,另一个人则可以让它从头重构数据库、把界面改成粉色。单看每一次改动,都可能是合理的。代码可以编译通过,测试可以通过,解释也可以按需生成。我们谁都不必再与其他人交谈,甚至不必去掌握那些在过去、为了完成改动而不得不去学习的共享模型中的那一部分。
正如我之前多次说过的:智能体不会感到痛苦,只有人才会。如今,智能体让我们得以在过去需要求助于他人的系统角落里采取行动,也让我们得以在那些若由人来改、早就引起反抗的代码库中肆意改动。
当我审视一些通过 vibe coding 不断扩张的项目时,会发现代码库之所以沦为巴别塔,并非因为无人能够沟通,而是因为无人需要沟通。每个开发者都拥有一个不知疲倦的翻译,能为他解释高塔的某个角落,并按其要求做出任何局部修改。改动持续不断地合入,而那种本可让人共同推演、理解整体架构的语言,却在悄然消失。
但这与《圣经》中的故事并不相同。在巴别塔,失去共同语言让建造戛然而止;而在 AI 辅助的工程中,即便共享的理解已经崩塌,建造仍可继续。恰恰是这种没有立即失败的状态,才让人觉得奇特、甚至有些迷失。高塔并未倒塌,所以我们并未察觉自己失去了什么。它只是一直在升高。
随机一篇博客
评论
登录后参与讨论