Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

AI 生成的代码很粗糙,但这是好事

Posted on 2025-10-20

在最近的Dwarkesh 播客采访中,Andrej Karpathy (现在) 曾说过这样一句话:

总的来说,模型还不够完善。我觉得这个行业想得太高了,还试图假装这很了不起,但事实并非如此。这简直是一团糟。

AI 代码很粗糙。

我认为代码应该是“草率的”(slop) 。不仅是AI代码,即使是人类编写的代码也应该如此。“草率”才是代码的理想形式,是我们一直追求的巅峰。亲爱的读者,这可不会让你感到舒服。所以,我们慢慢来吧。

什么是 slop?

在一篇关于定义该术语的史诗般的博客文章中,John David Pressman (@jdp) 这样说道:

写得潦草是为了填补字数。
拖沓是指你拖延大学论文的写作,并在截止日期当晚把一些东西弄糟了。
斜率是追逐算法的逻辑结论。
泔水是本我蒸馏出来的挤压精华。
当你有一个公式并坚持执行时,就会出现混乱。
失误是指您可以猜出警察程序中发现凶手的确切时间,因为每集都一样。
当生成器的 k 复杂度足够低时,您便可以推断出其模式,这就是 Slop。
邋遢就是每天在学校吃午餐,直到吐为止。
偏差是指某项措施不再是一个好的目标。
《Slop》是第 12 部超级英雄电影的续集。
作者之前所写的内容都是空洞的,没有新的想法或证据。
Slop 是盖尔曼失忆症。
斜率处于分布状态。
当作者写作的目的是为了赚钱时,就会出现“草率”的情况。
粗俗是指未能说出任何有趣的事情。
你在激励梯度的底部发现了松散的东西。
斜面的模拟层次比它所声称的要深。
泔水就是氛围。

烂片无聊透顶,毫无惊喜,老套,毫无新意。哈欠……

代码应该是草率的

回顾一下古代历史,比如 2-3 年前,软件工程师会说这样的话:

  • Dan McKinley, 《选择无聊的技术》 (2015),“创新代币”的起源,你只能做出这么多“酷”的选择
  • Charity Major, 《选择无聊的文化》 (2023),内容与此相同,但扩展到管理原则
  • Robin Rendle, 《三种类型的代码》 (2020),其中第一种是“无聊的代码就是好代码”
  • Chris Prijic, 《无聊的代码是一种美德》 (2022)
  • 戴夫·切尼, 《清晰胜于聪明》 (2019)
  • Stephen O’Grady, “你不会因为使用 Apache 而被解雇” (2011 年)
  • Alex Payne, “没有人会因为选择 Java 而被解雇” (2013 年)

有趣。好的代码是无聊的、毫无惊喜的、可预测的、毫无启发的。

糟糕的。好的代码应该是糟糕的。

Karpathy 没有这么说!!

是的,他做到了。

在采访的整个过程中,Karpathy 一直坚称 AI 编码代理对他帮助不大,因为他的代码“超出了发行范围”。换句话说, Karpathy 是自作自受:

我想说 nanochat 不是其中一个例子,因为它是一个相当独特的代码库。我构建的代码并没有那么多。它不是样板代码。它几乎是智力密集型代码,所有内容都必须非常精确地安排。这些模型存在很多认知缺陷。举个例子,他们一直误解代码,因为他们记忆中充斥着互联网上所有典型的做事方式,而我根本没有采用这些方式。例如,这些模型——我不知道是否想深入探讨细节——但他们一直以为我写的是普通代码,而我并没有。

Karpathy 认为 AI 工具没什么用,因为他故意选择了一些不正常的模式。他甚至承认,这些工具在其他项目中也很有用。

这并不是对 Karpathy 的批评,他为自己的程序设定了一个目标。他要把它打造成一个教育资源库。他不想要“普通”的代码,他想要的是能够最大程度实现教育目标的代码。

原始代码不是目标

大多数时候,雇主的目标是尽快创造价值。高质量且可维护的代码只是一种代理,一种在较长时间内快速交付价值的策略。

如果代码变得杂乱无章,即使是一些微不足道的修改也会耗费太多时间,最终导致价值交付变得缓慢而繁重。即使是枯燥的代码,也只是避免代码无法维护的一种策略。

最终目标依然如故。快速交付价值。Karpathy 有一个例外,其目标也极其奇特。你不是 Karpathy。

人工智能快速创造价值

最近我概述了我如何处理人工智能编码:

  1. 拥有主人翁意识
  2. 抓住机遇

最近,我在给别人解释组织动力学时,用了“自然力量”这个词。如果一个组织倾向于自上而下的沟通方式,那么从基层开展工作很可能会耗费大量精力,甚至可能失败。因为这违背了组织的本质。

2014年,Tim Ewald发表了题为“用手工工具编程”的演讲,他将编程与木工进行了非常相似的类比。你需要观察木材的纹理,并且只进行符合材料这一基本特性的切割。

AI 编码代理能够快速交付价值,但显然在某些场景下会失败。所以不要这样做。不要做那些行不通的事情。这并非火箭科学。成为一名工程师,抓住机遇,避免陷阱。

卡帕西:

所以,如果你在做样板工作,代理会表现得非常好。那些只是复制粘贴的样板代码,代理在这方面非常擅长。

真正的工程师会把这看作一个机会。 “如果我能最大限度地利用样板代码,就能从人工智能中获得更多优势。”比如,添加一个免费的 monad可能不是一个好主意,我不知道。

这并不是什么新鲜事。这就是软件工程师的工作。当某些东西无法正常工作时,你会重构代码库,或者将团队重组为更小、更专注的团队。这就是设计模式存在的原因。像微服务这样的权衡取舍,会让你的代码在一个维度上变得更糟,以便在另一个对你的团队更重要的维度上变得更好。

是的,但我是个例外

也许你和 Karpathy 一样,发现自己处于一种极其罕见的境地,你的目标并非快速交付价值。不妨这样做:年度考核季即将到来,告诉你的老板你不会使用 AI 工具,因为你认为你的目标中没有快速交付价值这一项。

试试看吧。我相信一定会成功的。

结论

我一直想写一篇关于“如何编写人工智能程序”的文章,但感觉已经写得太多。Karpathy 的“粗略”评论似乎恰好引出了真正重要的事情:抓住机遇。我反复问自己: “我们还能做得更好吗?”,以此来扭转团队的局面。为什么这不适用于人工智能工具呢?

作为软件工程师(或者说任何类型的工程师),我们的工作不是编写代码。很多职业都需要编写代码。软件工程师要做更重要的事情。编写代码所耗费的时间似乎分散了我们对核心工作的注意力,而我认为人工智能提供了一个机会,让我们重新理清工作的重点。

讨论

  • 蓝天
  • 领英
  • Twitter/X

原文: http://timkellogg.me/blog/2025/10/19/code-slop

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Anil Dash
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Big Technology
  • Bits about Money
  • Brandon Skerritt
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • eighty twenty
  • Elad Gil
  • Ellie Huxtable
  • Ethan Dalool
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • HeardThat Blog
  • Henrique Dias
  • Herman Martinus
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Li Haoyi
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Maggie Appleton
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mind Matters
  • Mostly metrics
  • Naval Ravikant
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Steph Ango
  • Stephen Wolfram
  • Steve Blank
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • Wes Kao
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme