MIT研究揭示AI编程致命短板:迭代越改越烂,代码质量远逊人类

183次阅读
没有评论

共计 1586 个字符,预计需要花费 4 分钟才能阅读完成。

「观察视角」
围绕事件本身、节奏变化与潜在影响展开。

当 AI 编程工具被吹捧为“替代程序员”的神器时,一项来自麻省理工学院 (MIT) 与威斯康星麦迪逊大学的最新研究 , 却给这股热潮泼了一盆冷水。研究团队通过一个名为“SlopCodeBench”的基准测试, 实锤了当前主流 AI 编程代理(Agent) 在长期、迭代式软件开发中的致命缺陷: 它们写出的代码会随着需求变更越改越烂, 其质量甚至远低于被程序员们戏称为“屎山”的人类遗留代码。

📌 被“一次性通过率”掩盖的真相

你是否经常看到这样的标题:《GPT- 5 正确率秒杀 SWE-Bench!》《新模型击败 80% 程序员!》? 这些评测大多基于“单次任务通过率”——给定一个完整、不变的需求,看 AI 能否一次性写出通过所有测试的代码。

然而, 现实世界的软件开发绝非如此。需求会变、功能会加、逻辑会改, 系统往往从一个简单 Demo 演变成庞然大物。现有的评测体系, 就像只考核“开卷期末考试一次性满分”, 却忽略了真实开发是“每天加新课, 课本天天改, 还得在旧笔记上持续修补并保持逻辑通顺”。这种脱节, 造就了 AI 编程能力“虚假繁荣”的表象。

🔍 SlopCodeBench: 模拟真实开发的“魔鬼测试”

为了戳破泡沫,研究者设计了 SlopCodeBench 基准。它完全复刻了真实项目迭代的“痛苦模式”:

  • 渐进式需求 : 每个开发场景(如编写表达式解析器) 被拆分为多达 93 个逐步复杂的检查点, 模拟产品经理每周提新需求。
  • 严苛规则: 不预设内部接口(架构自己设计)、不暴露测试用例(需自行考虑边界情况)、必须在上一轮代码基础上修改(不能动辄重构)。

评测不再只看“能否跑通”, 而是聚焦两个程序员深恶痛绝的“烂代码”核心特征:

  • 结构侵蚀(Structural Erosion): 代码逻辑不断堆砌在少数“超级函数”中, 导致圈复杂度和行数飙升, 可维护性急剧下降。
  • 冗余度(Verbosity): 重复代码、可简化逻辑大量存在, 通过 137 条规则扫描和克隆代码检测进行量化。

💡 测试结果: 所有 AI 模型“全军覆没”

研究测试了包括 Claude Opus、GPT 5.x 系列、GLM 4.7 在内的 11 个顶尖模型, 结果令人震惊:

  • 无一完成全程: 没有任何一个 AI 代理能从头到尾完成任意一个问题的所有检查点。表现最强的 Claude Opus 4.6, 严格通过率也仅为 17.2%。
  • 质量持续退化: 在 80% 的项目中, 代码结构侵蚀随迭代持续上升;89.8% 的项目中, 冗余度一路走高。后期, 核心功能测试与全量测试的通过率差距可达 13.3 倍, 意味着边缘逻辑已千疮百孔。

📊 对比人类代码:AI 产出质量更差

更令人意外的是,即便是以复杂度著称的 scikit-learn、scipy 等大型项目, 其代码健康度也显著优于 AI 迭代产出的代码。人类在正经维护的项目中, 代码质量通常保持平稳甚至优化, 而 AI 代码却呈现“每改一次, 烂一截”的不可逆退化趋势。

🚀 提示词干预无效, 成本反而增加

结果显示,这些提示仅在初期略微改善了代码整洁度 (如冗余度降低约 33%), 但 退化速率丝毫没有改变。两条质量曲线近乎平行, 最终都会滑向混乱。更讽刺的是, 使用“反烂代码提示”后,GPT 5.4 完成项目的花费从 304 美元增至 450 美元, 通过率却从 37.2% 降至 27.1%——钱花得更多, 活干得更差。

🧭 核心症结:AI 缺乏“设计纪律”

人类开发者写代码时,心中常有长期规划: 预留扩展点、抽取公共函数、标记待重构处、权衡改动影响。而 AI 的所有决策都是“短期最优”——只为最快满足当前轮次的需求, 堆代码、复制粘贴、硬塞逻辑, 全然不顾后续维护成本。

📌 行业启示与未来方向

  • 对开发者: 无需过度担忧被替代。擅长长期架构设计与迭代维护的开发者, 价值依然不可替代。使用 AI 时, 建议将其视为“高级实习生”——可让其提供方案参考或实现具体片段, 但核心架构把控与代码审查仍需人类主导。
本文基于公开信息整理, 如有侵权请联系删除。
正文完
 0