返回资讯中心
外部精选
软件工程
#开发者实时流

前谷歌工程师:我从AI编程怀疑者变成信徒

来源标题:Confessions of an AI Skeptic

一名前谷歌工程师公开承认自己此前对AI编程的怀疑是错的,称AI编程效果出奇地好,已从根本上改变软件工程行业。他在2025年因不满公司AI相关调整而离职,随后亲自实验这些工具并转变了看法。

Hacker News 最新gashad2026/11/15 · 今天30 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

2025年的大部分时间里,我一直对AI持怀疑态度,尤其是对AI编程。后来通过实际试用这些工具,我有了新的认识,也想谈谈这对软件工程的未来意味着什么。

很长一段时间里,我都对AI持怀疑态度,尤其是对AI编程。这种怀疑贯穿了整个2025年——那一年我辞去了Google的工程职位,部分原因是对公司的一些变化感到不满,而这些变化在一定程度上是由AI相关的优先级推动的。我不觉得自己是在教条主义或天真,事实上我还承诺要亲自实验这项技术,看看它到底能做什么。我只是预期最终会得出结论:这一切不过是场空热闹。

好吧,我现在必须坦白:我错了。AI编程确实可行,而且效果好得惊人,它已经从根本上改变了软件工程这门学科和职业,不过其中有些细微之处值得讨论。以下是我从怀疑者转变为信徒的过程记录,附带几个重要的附加说明,以及对软件工程未来的一些思考。

毕竟,相当长一段时间以来,本就应该很明显:某种形式的AI技术终将接管计算机编程的大部分工作。本科学习计算机科学时,我接触过证明系统以及类似的研究方向,这些都有可能通向程序分析和程序推导。编程语言设计与编译器技术,以及软件开发实践本身,都在缓慢而坚定地朝着更强表达力和更高自动化的方向发展。给定足够的时间,这两股趋势无疑都会推进到足够远,最终在中途汇合,为我们提供一条可行的自动程序生成流水线。多年来我一直对朋友和同事说:总有一天,工程师不再以代码和设计模式的思路来思考问题,而是以交给AI的需求来思考。

但我从未预料到这一切会来得如此突然、如此之快。我以为,也许在我有生之年能看到最初的曙光,但几乎肯定不会在我的职业生涯期间发生。

所以,当AI编程工具在过去几年涌现时,我想我的怀疑很大程度上来自AI所采取的形式。自动化证明系统,那对我来说是说得通的。但大语言模型?

这就是我卡住的地方,我想也是我许多同行卡住的地方。(而且,我后面会暗示,也许这种怀疑是有道理的。)在我的理解中,LLM不过是升级版的自动补全。给模型足够的训练数据,它就能生成听起来合理的输出,仅仅因为输出与足够多的人类生成语料相似。但我想,它不可能产出既真正新颖又在技术上连贯的东西。也许它能以某个已有作者风格写文章,但它绝不可能创造自己的风格。也许它能复述一段Python脚本——如果同样的脚本之前已经有人针对类似需求写过——但给它一个训练数据中没有明确包含的任务,它绝不可能成功,对吧?像大多数早期的机器学习系统一样,LLM能预测,但不能创造性地推理,对吧?

所以在2024年、尤其是2025年,当我听到有工程师据称用AI编程取得了成功的说法时,我基本不以为然。也许我们写的80%的代码确实是常见的、常规的,LLM可以从现有的公开训练数据中复述出来。但面对新任务时它绝不可能成功。它绝不可能真正完成人类工程师的工作。对吧?

然而我不断听到一些在我看来根本不可能为真的说法和主张。作为一名高级/首席级别的软件工程师,我知道至少我有责任去理解到底发生了什么。于是在2025年9月,当我终于对Google竖起中指、开始为期一年的职业休整时,我决定花一些时间实验这些工具。我加入了大批尝试Claude Code的工程师行列,先让它审查我自己的pull request,然后给它越来越不简单的编程任务让它独立完成。

说我对结果印象深刻,那是轻描淡写。我先是震惊,然后目瞪口呆,最后彻底被震撼了。

最先让我刮目相看的,是模型能够用我项目自己特有的术语与我交流。当时我在做Toys——一个用Ruby编写的命令行框架——Claude的代码审查会正确地讨论“tools”、“mixins”、“flags”等术语,这些词虽然在软件领域通用,但在Toys生态中有特定含义。Claude还能展示出对Toys的DSL的理解、对Toys内部模块的正确使用,以及对Toys代码库整体独特形态和要素的把握。关键是,它的审查整体上非常精准,能捕捉到令人惊讶的细微问题,并给出有理有据的建议,质量达到我对中级或高级人类工程师的预期。

接着我给它一个相当大的任务——虽然最终看来有些机械——把一个用90年代PHP写的、基本静态的网站迁移到现代静态站点生成框架。框架(Jekyll)是我自己选的,但我放手让Claude选择合适的主题并执行迁移。Claude花了将近一个小时,但我惊讶地发现它成功了。它 somehow 理解了古老的PHP代码,逆向工程出原网站使用的自定义布局系统和页面层级,并成功复现了内容。有一处它在一个页面上幻觉了部分内容,但当我让它对照原始代码检查工作时,它发现并自我纠正了问题。(后来我了解到,这大概是因为它在会话过程中发生了自动压缩。)

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →