Can We Measure Software Slop? An Experiment
核心观点
作者认为"软件slop"不是关于代码质量,而是关于人类注意力。LLM生成的代码只要未经人类审查和验证,就是slop。一旦人类仔细检查、编辑并验证它能正常工作,slop就变成了真正的软件。
Slop测量公式
Sloppiness = Attention Cost / Attention Spent
- Attention Cost(注意成本): 与代码行数(LOC)相关——添加一行代码需要注意力
- Attention Spent(已投入注意力): 通过git commits、PR comments、issues等信号估算
实验工具:Slop-O-Meter
作者用Claude构建了一个工具 Slop-O-Meter,可以分析任意公开GitHub仓库的slop程度。
评分算法
- 过滤非代码文件(README、配置文件等)和依赖
- 按文件类型加权(JavaScript比CSS成本高)
- 按代码库规模加权(更大的代码库添加代码更难)
- 将人类commit和GitHub评论视为"注意力信号"
- 老项目成员的注意力比临时贡献者权重更高
实验结果
成功的案例
- @steipete(知名vibe coder)的项目一致获得高slop分数
- React等严格项目的slop值很低
失败的案例
- SQLite:使用Fossil而非git,被误判为slop(历史评分曾达3.0)
- 封闭开发项目
- infrequent big commits模式
局限性
算法无法可靠区分:
- 真正用心写的代码 vs 快速写完后仔细review的代码
- 不同开发工作流(单车commit vs 大块commit)
- 不同的版本控制系统
核心洞察
这个实验最有价值的贡献是重新定义了"slop"的概念:
"LLM生成的代码是slop when it has not been given attention; i.e., it has not been reviewed or verified by a human."
这意味着slop与代码质量无关——LLM可以写出很烂的代码,人也可以。重点是是否有人类认真审查过。
未来改进方向
- 收集更多注意力信号
- 根据不同仓库的历史调整注意力权重
- 区分不同类型的commit(功能vs重构vsbugfix)
原文: https://pscanf.com/s/352/ | 代码: GitHub