Writing code is cheap now
编译摘要
1. 浓缩
- 核心结论1: coding agent 改变的不是"软件不需要工程",而是"把代码输入计算机"这件事的边际成本快速下降。
- 关键证据: Willison 对比了旧约束下的工程直觉:几百行干净且有测试的代码通常意味着一天甚至更久的人类时间;现在一个工程师可以让多个异步代理并行实现、重构、测试、补文档。
- 这会冲击宏观决策和微观习惯。宏观上,团队过去围绕昂贵的编码时间做估算、排期和功能取舍;微观上,开发者每天会因为"不值得多花一小时"而放弃调试界面、边缘测试、文档或小型重构。
- 核心结论2: 代码变便宜后,真正昂贵的部分转移到"好代码"的判定、验证和维护。
- 关键证据: 作者列出的好代码标准并不只包括"能跑",还包括知道它能跑、解决正确问题、错误处理清晰、保持简单最小、有测试保护、文档同步、遵守 YAGNI,并满足可访问性、可靠性、安全性、可维护性、可观察性等相关质量属性。
- 因此,廉价代码扩大了可尝试空间,但没有取消工程责任。相反,它把人的工作从直接敲代码推向指定任务、构造验证、检查边界、识别过度复杂性和决定是否保留生成结果。
- 核心结论3: 新习惯不是盲目生成更多代码,而是把"先试一下"纳入低成本探索,再用更强的验证门槛筛选。
- 关键证据: 作者建议,当直觉说"这个不值得做"时,可以先给异步代理一个 prompt;最坏情况是十分钟后发现这个想法不值得消耗 tokens。
- 这条建议的重点在于改变探索成本模型:过去不值得人手写的调试工具、候选实现、迁移脚本或测试补强,现在可以先产出草案,再由人和测试决定去留。
2. 质疑
- 关于"代码便宜"的质疑: 这里的便宜主要指生成代码的边际人力成本下降,不等于集成、评审、回归、部署和长期维护成本下降。如果团队没有验证系统,廉价生成会把成本转移为 review backlog、脆弱抽象和安全隐患。
- 关于"先试试"的质疑: 低成本探索可能诱发局部最优。一个人可以同时启动多个代理任务,但如果缺少清晰验收条件,团队会得到更多半成品分支、更多风格不一致的补丁,以及更多需要删除的代码。
- 关于 YAGNI 的质疑: AI 降低了实现成本,但没有降低复杂性本身。未来需求仍然不确定,过早泛化仍会制造认知负担;变化的是可以更便宜地做小实验,而不是可以更随意地把实验并入主线。
- 关于组织采用的质疑: 个人习惯改变不代表组织能立即受益。并行代理需要测试基建、代码所有权、PR 审查策略、权限边界和可追溯日志,否则"写得更多"只会放大协调成本。
3. 对标
- 与快速原型对标: 设计和产品里的原型工具让团队更早看到方案,但最终价值取决于用户验证与取舍。coding agent 也是如此,低成本产物只是把讨论从抽象想法推进到可检查对象。
- 与写作流程对标: AI 让"初稿"便宜,不能让"定稿"便宜到同等程度。工程里的定稿对应测试、可维护性、错误语义、文档和部署风险。
- 与知识工作 Jevons 悖论对标: 当某类工作成本下降,需求不一定减少,可能出现更多以前不值得做的小工具、迁移、验证 harness 和一次性分析脚本。这和 Jevons-Paradox-for-Knowledge-Work 的需求扩张逻辑一致。
- 可迁移场景: 适用于任何"产出草案便宜、判断质量昂贵"的工作,如数据分析、内部工具、文档系统、测试补强和产品实验。关键不是多生成,而是让每个生成动作绑定验收标准。
关联概念