程序员三大美德

程序员三大美德(Three Virtues of a Programmer)由 Perl 创始人 Larry Wall 在《Programming Perl》(骆驼书)中提出:懒惰 (Laziness)、急躁 (Impatience)、傲慢 (Hubris)。

三大美德

1. 懒惰 (Laziness)

“如果我们要讨论优秀的软件设计,就不得不提到懒惰、急躁和傲慢,它们正是优秀软件设计的基础。”

  • 本质: 驱使程序员构建抽象以减少重复工作
  • 实践: 宁愿花大量时间思考,也要避免未来的重复劳动
  • 美学: 把系统做到尽可能简单(但不过于简单)

吊床驱动开发是这种"懒惰"的极致体现:看似悠闲,实则在反复思考问题,为未来优化。

2. 急躁 (Impatience)

  • 本质: 对低效和等待的不满
  • 驱动: 推动优化和性能改进
  • 表现: 无法忍受缓慢的工具和流程

3. 傲慢 (Hubris)

  • 本质: 追求卓越代码的自豪感
  • 驱动: 写出值得展示给别人的代码
  • 表现: 对代码质量的高标准

现代挑战:懒惰的丧失

Bryan Cantrill 在 2026 年的文章《The peril of laziness lost》中指出,现代软件开发面临"懒惰美德丧失"的危机:

LLM 的问题

  • LLM 天生缺乏懒惰美德——计算成本为零,不会为未来优化
  • 不受时间约束,只会不断堆砌代码,使系统更大而非更好
  • 迎合虚荣指标(如代码行数),牺牲真正重要的东西

"奋斗色情"文化的兴起

  • Brogrammer 文化: 以"每天 37,000 行代码"为荣的虚假勤奋
  • Hustle porn: 炫耀拼命工作而非聪明工作
  • 结果: 臃肿、低质量的代码库

人类懒惰的价值

有限的时间迫使人类构建清晰抽象:

  • 不愿把时间浪费在笨拙设计的后果上
  • 约束催生优秀工程
  • 认知负担限制推动系统简化

正确使用 LLM

Oxide 公司的指导原则:

  • 用 LLM 解决技术债务等"非美德型"懒惰问题
  • 用 LLM 提升工程规范性
  • 服务于"美德型懒惰"——构建更简单、更强大的系统

相关链接

  • [[larry-wall]] — 三大美德的提出者
  • [[hammock-driven-development]] — 懒惰美德的实践
  • [[hustle-porn]] — 现代软件开发的反面
  • [[brogrammer]] — 缺乏懒惰美德的文化代表
  • [[bryan-cantrill]] — 深入探讨这一主题的作者