最近我读了徐宥(Eric Xu)的一篇文章:《AI Codes Retrospective》。作为一名前线敲代码的开发者,这篇文章里关于 Ilya Sutskever 的一段小故事让我深有感触。它就像是帮我 git checkout 到了 AI 发展早期的那个混乱分支,让我彻底放下了对“天才”的神话滤镜。
1. 什么是这篇“复盘”?
如果把如今的 AI 编程工具(比如我们天天用的 Cursor 或 Copilot)比作一个已经发布到 v1.0 且大获成功的开源项目,那么徐宥的这篇文章,就是带我们去翻阅这个项目早期的 git log 和 issues。
文章没有停留在“AI 编程好不好用”这种表层讨论,而是把 AI 编程的演进史放到了一个更长的时间轴去审视,展现了 AI 是如何从一个“辅助插件”一步步变成“生产逻辑的中心”的。
2. 为什么我们需要在这个时间点看这个?
每天面对层出不穷的新模型和新框架,我们很容易产生一种技术焦虑和后视镜偏差。
我们现在看着 GPT 的成功,觉得“Scaling Law(缩放定律)”是必然的,仿佛那些大佬们一开始就拿着一份完美的架构设计文档在施工。这种错觉会让我们在面对自己日常开发中的失败(比如选错了一个状态管理库,或者把微服务拆得太细导致翻车)时,感到格外的挫败。我们需要一种视角的转换,来看看“先知”们是如何在迷雾中摸爬滚打的。
3. “神话”是如何被消解的?
文章中最具人情味的一点,就是揭示了:哪怕是公认的“先知”,在身处迷雾时也是在摸着石头过河。
- 没有一眼看透未来的剧本:强如 Ilya,早年也在 Seq2Seq、Neural Turing Machines 甚至早期机器人项目上兜兜转转。这就像我们在开发初期,疯狂地建 feature 分支,试了各种技术栈,最后发现都不 work,只能含泪
git reset --hard。 - 探索的本质是排错:这种“兜兜转转”不是能力的缺失,而是科学探索的常态。很多现在看起来“错”的尝试,往往是为后来那个“对”的结果提供了负向证明(就像你排除了所有导致 Bug 的不可能因素)。
4. 现实世界的映射:工程师的豁达
这实际上是对我们开发者的一种巨大的心理慰藉。如果连 AI 领域的灵魂人物都在不断修正路线,那么我们作为实践者,在各种框架(如 React 还是 Vue,FastAPI 还是 Express)和工具之间徘徊、选择、重构,也是一种必经的演化。
当我们不再迷信某个天才的“神启”,而是看到他们也在不断试错时,我们其实是把对技术的信心从“个人”转移到了“规律”和“时间”上。
真实世界的验证:
回想一下你最近一次解决复杂 Bug 的经历。你可能先怀疑是网络问题(ping、traceroute),然后怀疑是配置问题,最后发现只是少写了一个 await。这种非线性的排错过程,和 AI 发展的历程在本质上是同构的。
5. 总结:把对错留给时间
徐宥这篇文章冷峻地指出了繁荣背后的代价(比如传统编码能力的退化),但也给了我们一个很好的启示:
伟大的成果往往是“幸存者偏差”和“坚持探索”共同作用的结果,而不是精准预测的结果。
作为开发者,面对复杂系统时,保持一种长远的定力。不需要追求一步到位,不用在乎当下的某次技术选型是谁对谁错,只要我们在保持迭代,剩下的,都留给时间。毕竟,即便是 Ilya,也是在不断的“兜兜转转”中,最终撞见了未来。