在最近举行的北美开源峰会(Open Source Summit North America)的主旨演讲中,Linux 和 Git 的创始人林纳斯·托瓦兹(Linus Torvalds)直言不讳地反驳了那些认为人工智能将取代人类程序员的观点。
托瓦兹在明尼阿波利斯的会议上告诉观众,AI 不会“取代”编程,而是会像过去的历次技术革命一样提高生产力。
他澄清道,程序员最终将使用 AI 来生成源代码,然后再由编译器将其转换为机器码。然而,为了构建旨在持续数十年的严肃项目,开发人员必须深入理解生成的代码和系统架构,而不仅仅是理解提示词(prompts)。
“AI 是一个伟大的新工具,但它只是一个工具。当我看到有人说‘嘿,我们 99% 的代码都是由 AI 编写的’时,我真的会感到生气。因为我可以基本保证,这些人的代码 100% 都是由编译器编写的,但他们从来不这么说。”
“当我看到有人说‘嘿,我们 99% 的代码都是由 AI 编写的’时,我真的会感到生气”
作为一名资深的开源维护者——也是 Linux 的首位维护者和创造者——托瓦兹将 AI 视为一种显著的高生产力工具,类似于从机器码到汇编语言和编译器的历史性转变。
托瓦兹驳斥了 AI 有朝一日可能“取代”编程的观点,认为它更像过去软件开发的革命那样,只是提升了效率。托瓦兹强调,在可见的未来,真正的软件工程需要人类对底层系统的理解,而不仅仅是编写 AI 提示词的能力。
“我 100% 确信 AI 正在改变编程,但它并没有改变其中的乐趣。”
程序员最终会利用 AI 生成源代码,再由编译器转为机器码。托瓦兹说:“我 100% 确信 AI 正在改变编程,但它并没有改变其中的乐趣。”
正如托瓦兹在演讲中提到的,他最初是从汇编时代之前的纯数字机器语言开始编程的。随后出现了汇编语言,接着是像 Fortran 这样使用编译器的更高级语言。随着编译器的出现,基础编程的生产力得到了大幅提升。
托瓦兹认为,AI 可以将生产力提高 10 倍,但换个角度看,AI 辅助编程带来的生产力提升其实比编译器带来的提升要低 10 倍。这一断言基于托瓦兹的计算,即编译器将编程效率提高了 1000 倍。
“不理解系统复杂性的人也会向系统发出提示并编写出最终会失败的流程。所以,我认为你确实需要了解这一切是如何运作的。”
“知道自己在做什么、理解系统的人,能够通过提示工具写出高质量的代码,”托瓦兹说,“而不理解系统复杂性的人也会向系统发出提示并编写出最终会失败的流程。所以,我认为你确实需要了解这一切是如何运作的。”
开源项目中 AI 生成代码带来的直接困境是:AI 生成的拉取请求(pull requests)呈爆炸式增长,其中往往包含 AI 工具发现的漏洞。由于资源充足,Linux 项目目前尚能应付评估并合并这些修复补丁所需的人力。然而,对于成千上万缺乏资源的其它项目来说,许多项目已经无法跟上这种节奏。
“除了 Linux 内核之外,在人们维护的所有项目中,可能有些是某人已经开发了十年或更久的个人核心项目,他们只有一到三个人(负责修复漏洞和创建补丁),他们真的会感到精疲力竭,”托瓦兹说道。
托瓦兹表示,虽然 AI 有助于识别陈旧代码库中根深蒂固的漏洞,但它也带来了社会负担:那些缺乏后续跟进的“路过式(drive-by)”AI 漏洞报告会导致维护者精疲力竭。
托瓦兹指出,Linux 项目拥有超过 35 年的遗留代码,AI 确实成功发现了一些隐藏的问题。然而,维护者需要花费大量时间来筛选这些问题。
“有时,AI 显然报告了一个漏洞,但当你询问更多信息时,那个‘路过’的人甚至根本不回答你的问题,”托瓦兹说,“这才是导致职业倦怠的真正问题。”
此外,一些科技公司为了出名,利用 AI 标注漏洞以吸引媒体关注,却不提供必要的代码补丁。托瓦兹断言:“这些公司乐于花费大量的金钱和 Token 来指出上述问题,但奇怪的是,尽管这些都是开源代码,却没有一家公司提供补丁。从短期来看,AI 在任何源代码中发现漏洞都是好事,但如果 AI 发现了我们没发现的问题,我们也需要时间来逐一处理这些新问题。”
“从短期来看,AI 在任何源代码中发现漏洞都是好事,但如果 AI 发现了我们没发现的问题,我们也需要时间来逐一处理这些新问题。”
项目维护者在 7.1 版本发布前看到了拉取请求的激增,导致准备期间的提交量(commits)超过了以往任何版本。然而,事实证明,这种激增是由于 AI 的使用,而非像托瓦兹最初认为的那样是因为人们对新版本的兴趣增加了。
尽管如此,他指出,利用 AI 为内核做贡献是一件好事,这个非常困难的过程在很大程度上得到了 AI 工具的支持,并在许多情况下得到了增强。正如他所言,当前 Linux 内核版本的提交总量增加了约 20%。
在问答环节中,托瓦兹被问及 Linux 项目维护者使用哪些 AI 工具来审查拉取请求和漏洞报告,他回答是“Sashiko”。然而,即使有了这种工具,人类仍然必须维护和审查实现过程或建议的修复方案,这在整个项目中仍需要大量人力。
尽管如此,考虑到科技行业的裁员潮,编程行为本身正在发生变化,但人类——至少在中短期内——仍将需要深厚的专业知识,并且依然是不可或缺的。
[Why Linux creator Linus Torvalds gets angry hearing "99% of code is AI"](https://thenewstack.io/torvalds-ai-programming-productivity/ "Why Linux creator Linus Torvalds gets angry hearing "99% of code is AI"")