失去“懒惰”美德的危机:LLM时代的软件工程反思
# 导语
在软件工程领域,Perl 语言创造者 Larry Wall 曾提出程序员的三大美德:“懒惰、急躁与傲慢”。Oxide Computer 联合创始人 Bryan Cantrill 在本文中重拾“懒惰”的深层意义,探讨在大型语言模型(LLM)狂飙突进的时代,盲目追求代码生成量的“虚假勤奋”如何破坏了软件抽象的优雅。文章警告我们,失去“懒惰”这一人类特有的约束,任由 LLM 堆砌代码,将把软件工程推向臃肿与失控的边缘。# 核心内容
“懒惰”的真正奥义Cantrill 指出,“懒惰”不仅是对抽象的需求,更是一种技术审美。真正的懒惰驱使程序员将系统做到尽可能简单(但绝不过度简单),通过艰苦的脑力劳动(如“吊床驱动开发”)来构筑强大的抽象层。这种看似偷懒的行为,实则是为了优化未来的时间,让软件更容易编写和组合,造福后人。
“虚假勤奋”的崛起
然而,随着软件开发门槛的降低,行业内滋生了一种强调“肝代码”的“兄弟程序员(brogrammer)”文化和“奋斗色情(hustle porn)”。这种文化摒弃了“懒惰”美德,将疯狂产出代码视为骄傲。
LLM 沦为代码膨胀的催化剂
LLM 的出现如同给这种虚假勤奋打了一针合成代谢类固醇。Cantrill 以知名风险投资人 Garry Tan 为反面教材:Tan 在社交媒体上炫耀自己借助 LLM 每天生成三万七千行代码且“速度还在加快”。然而,当技术人员拆解 Tan 生成的“简报博客系统”时,却发现里面塞满了荒谬的垃圾代码——多个测试工具、Rails 的 Hello World 应用、一个不知所云的文本编辑器,甚至还有 8 个不同版本的 Logo(其中一个还是 0 字节)。这不仅违背了软件设计原则,更是对工程质量的公然践踏。
# 深度解读
人类局限性造就了极致简约文章深刻揭示了 LLM 的根本缺陷:LLM 天生缺乏“懒惰”的美德。 对 AI 来说,生成代码的边际成本几乎为零。它们不需要考虑未来维护的时间成本,因此会毫无顾忌地在系统上不断堆砌垃圾代码。如果没有人类的干预与约束,LLM 只会让系统变得无比庞大,而不是变得更好,仅仅满足了某些人对虚荣指标的追求。
从约束中诞生的工程严谨
最好的工程设计往往源于约束。正是因为人类程序员的时间、精力有限,且大脑无法承受无尽的认知负荷,我们才被迫去开发清晰、简洁的抽象层,以应对软件本质上的复杂性。Cantrill 曾在《简单的复杂性》演讲中强调,将系统变简单是一项极其艰巨的工程,而我们不能指望不受时间或认知负荷约束的 LLM 自发地完成这项任务。
# 启示与展望
我们不应全盘否定 LLM 的价值,它们无疑是软件工程的强大工具。在 Oxide 的实践中,LLM 被用来处理那些真正繁冗枯燥的工作,如清理技术债务或辅助提升工程严谨性。但在拥抱 AI 的同时,我们必须坚守人类程序员的“美德式懒惰”。我们使用 LLM 的最终目的,绝不应是盲目堆砌代码量,而是为了构建更简单、更强大的系统架构。未来的软件工程依然需要人类的智慧去把控方向,只有这样,我们才能开发出真正服务于当下并造福下一代工程师的优秀系统。
夜雨聆风