我们都很喜欢一场精彩的社交媒体吐槽大会,而 Y Combinator 首席执行官 Garry Tan 周三就撞上了这么一桩糟心事。
Tan 曾在 Palantir 担任工程经理,近来一直是 AI 加速的积极倡导者。他吹嘘说,自己和 AI 编程智能体每天在五个独立项目上部署 37,000 行代码。Tan 周一在 X 上发帖称:“智能体工程的一周简直疯狂。”他在后续帖子中补充说,自己已经连续交付了 72 天。
两天后,一位网名为 Gregorein 的波兰游戏开发者兼高级软件工程师决定仔细看看这些交付的实际成果,并瞄了一眼 Tan 专注于 AI 的博客。他在 X 上写道:“这就是 78,400 行 AI 垃圾代码在生产环境中的真实样子。”
Gregorein 拥有计算机科学硕士学位、波兰工程师头衔以及 13 年行业经验。他在 Tan 的网站代码中发现了大量臃肿和低效的实例,并使用一次(Anthropic)Claude 会话审查了从网站下载的文件,以确认他的观察结果,具体如下:
Tan/AI 构建的网站,当用户访问时,浏览器会针对各种资源发起 169 次服务器请求,总大小为 6.42 兆字节。作为对比,极简风格的 Hacker News 首页(同样由 Y Combinator 运营)仅发起 7 次数据请求,总大小仅为 12 千字节。
该网站将 28 个实际的测试文件(开发者用来检验工作的代码)直接发送给每位访问者的浏览器。这相当于 300 千字节纯粹的开发者脚手架代码,用户从未要求过。
它加载了 78 个不同的 JavaScript 控制器,用于 AI 图像生成、语音提取、视频工具等功能,但这些功能在首页上均未出现。浏览器仍然必须“以防万一”下载所有这些控制器。
该网站的 Logo 是一只熊的插图。Gregorein 发现,该网站以八种不同格式下载这个 Logo,其中包括一个完全为空的 0 字节文件,而这个文件不知何故竟然进入了生产环境。
该网站使用了体积庞大、未经压缩的老式 PNG 图片(有些每张接近 2MB),尽管浏览器明确要求使用现代的小尺寸格式。仅两张图片就浪费了约 4MB 空间;如果采用新格式,它们本可以只有 300KB。
Gregorein 还发现页面内容重复、一个空的 CSS(层叠样式表)文件、在只读页面上加载了庞大的富文本编辑器、缺少图片描述,以及分析代码故意通过代理路由以绕过用户的广告拦截器(代码中的注释也承认了这一点),Gregorein 报告称。
Gregorein 指出,他的审查仅包括浏览器中可见的前端代码,不包括后端和数据库代码。即使不触及后端,面向公众的输出(网站用户体验)也清楚地表明,Tan 的网站充满了明显的臃肿、浪费和初级错误。
更关键的一点是,虽然 AI 编码工具让大量输出代码变得容易,但真正重要的(仍然)是代码的质量。换句话说,数量并不一定等于质量。诚然,非编码人员可以使用自然语言指导 AI 工具快速构建网站、应用或新功能,但如果这些代码未经适当审查和测试就投入生产,可能会导致明显的功能故障、产生安全漏洞,或引入日后才会暴露的问题,迫使工程师追踪并修复底层代码。
“仅从 Garry 自己的截图来看:每次[代码]提交大致可以估算为新增 2000 行、删除 450 行,”Gregorein 在周四给《快公司》的私信中说道。他补充说,当单次提交改动如此之大时,质量往往会呈指数级下降,并且每一代代码都需要越来越多的重写来稳定构建。
“现在我们正处于这样一个时刻:AI 让你生成代码的速度比任何人审查它的速度都快,而像 Garry 这样的人给出的答案似乎是‘那就别审查了’,”Gregorein 说。“这听起来确实像 Facebook 的‘快速行动,打破常规’,而这句话后来也经不起时间的考验。”