💀 Reports of code's death are greatly exaggerated
编程哲学
AI
抽象思维
未来趋势
核心论点
"Everything is vague to a degree you do not realize till you have tried to make it precise."
— Bertrand Russell
— Bertrand Russell
99%的人似乎同意代码已死。但这是错的——就像在印刷术发明时认为讲故事已死一样。代码才刚刚开始。AI将成为编程的巨大福音。
Vibe Coding 的幻觉
"Vibe coding" 这个词很完美:你保持在英语层面的"感觉"运作,对AI创造的产物做出反应来精确你的思维。
但 vibe coding 给你的幻觉是:你的感觉是精确的抽象。它们会一直感觉精确,直到泄露发生——当添加足够功能或达到足够规模时。
Dan Shipper 的经历就是如此:他的 vibe-coded 文本编辑器应用 viral 后崩了。"实时协作真的TM难。"
抽象:人类大脑的唯一救赎
人类大脑有一个根本限制。我们一次只能思考 7±2 件事。所以思考超过 7 件事的唯一方法是把多件事压缩成一件。幸运的是,我们可以递归地做到这一点,无限进行。这个压缩步骤叫做抽象。
抽象的目的不是模糊,而是创建一个新的语义层次,在其中可以绝对精确。
— Edsger Dijkstra
— Edsger Dijkstra
为什么好工程师写糟糕的AI代码
- 奇怪的反馈循环:你无法单步调试 prompt。输出是概率性的。当它终于工作时,你不想碰它。
- 交付压力:让 LLM 工作感觉像是一种成就。干净的架构感觉是后来的奢侈品。
- 边界不清:你在哪里画边界?你的 prompt 同时是代码和数据。一切都不熟悉。
AGI 时代
让我们推演 1、2、5、10、100 年后。AI 变得更好/更快/更便宜,但除非你相信魔法,机器智能达到人类智能水平只是时间问题。我们称那一点为 AGI。
如果你有一个Karpathy级别的天才 access,你用它来交付更多 slop?得了吧。当然不。
我们困惑是因为我们(错误地)认为代码只是为了它产生的软件。代码本身也是极其重要的 artifact。做得好,它就是诗歌。
与写作的类比
没人谈论"vibe writing"。我们不困惑是因为:
- 语法正确的句子不像运行代码那样有什么"神秘"之处
- 没人声称 ChatGPT 会让伟大作家或记者失业
- 我们都知道那是扯淡
编程的情况完全相同。AI 产生(越来越少)shitty code。我们都知道。我们都绕过这个限制使用 AI。
AI 帮助我们产生更好的代码
Simon Willison 说:AI 应该帮助我们产生更好的代码。当我们有 AGI 时,这将很容易。
你可能认为随着 AI 变聪明,对好代码的需求就会消失——但这就像用 ChatGPT 写更多 slop。当我们有 AGI 时,我们将用它来创造更好的抽象、更好的协作文本编辑器库等。
经典引言
把使用形式符号的义务视为负担是愚蠢的。我们应该把使用它们的便利视为特权:得益于它们,小学生可以做到以前只有天才才能做到的事。
— Edsger W. Dijkstra
— Edsger W. Dijkstra
构建软件设计有两种方式:一种是做得如此简单以至于明显没有缺陷,另一种是做得如此复杂以至于没有明显的缺陷。
— Tony Hoare
— Tony Hoare