专栏名称: 极客时间
极客时间服务号
目录
相关文章推荐
51好读  ›  专栏  ›  极客时间

Tim O’Reilly:AI 时代,程序员会比以往任何时候都多

极客时间  · 公众号  ·  · 2025-03-26 18:12

正文

请到「今天看啥」查看全文


媒体上有很多传言称,软件开发人员的工作很快就会被人工智能抢走,但我并不这么认为。

这并不是编程的终结,而是“我们今天所熟知的编程”的终结。这并不是什么新鲜事。最早的程序员通过连接物理电路来执行每一次计算。后来,程序员将机器指令编写为二进制代码,通过拨动计算机前面的开关,每次输入一个比特来是执行计算。然后,汇编语言编程结束了这种编程方式。它允许程序员使用类似人类语言的指令来告诉计算机将数据移动到内存中的某些位置并对其执行计算。再然后,更高级的编译语言(如 Fortran、COBOL 及其后继者 C、C++和 Java)出现,这意味着大多数程序员不再需要编写汇编代码了。相反,他们可以使用更高级别的抽象来向计算机表达自己的意图。

Betty Jean Jennings 和 Frances Bilas(右)于 1946 年在为 ENIAC 编程。图片来源: 计算机历史博物馆

最终,更容易调试的解释型语言成为了主流。

BASIC 是它们当中最早取得巨大成功的语言之一,起初它被视为一种玩具,但很快就被证明是未来的潮流。编程变得对孩子和车库创业者来说都很容易,而不仅仅是大型公司和政府机构的后台人员的专属领域。

消费级操作系统也是这个故事的一个重要组成部分。在个人计算机的早期,每一家计算机制造商都需要软件工程师来编写底层驱动程序,负责执行对内存板、硬盘以及调制解调器和打印机等外围设备的读写工作。Windows 结束了这种情况。它之所以成功,不仅仅是因为它提供了一个图形用户界面,使未经训练的人也能更容易地使用计算机,它还提供了马克·安德森(Marc Andreessen,他的公司 Netscape 后被微软碾压)轻蔑地(也是错误地)称之为“不过是一堆驱动程序”的东西。这些驱动程序通过 Win32 API 的形式暴露出来,意味着程序员不再需要编写底层代码来控制机器,这项工作实际上被封装在操作系统中了。今天,对 Windows 和 macOS,以及移动设备上的 iOS 和 Android 的大多数程序员来说,他们不再需要了解前几代程序员需要知道的很多东西。

程序员变得更多,而不是更少

然而,这远非编程的终结。程序员比以往任何时候都多。数以亿计的用户享受着他们的创意成果。 需求弹性 的一个经典表现是,随着软件开发变得更容易,其价格也随之下降,开发人员能够创造出更多人愿意为之付费的解决方案。

Web 是另一个“编程终结”的领域。突然之间,用户界面由人类可读的文档组成,这些文档显示在浏览器中,并带有可以调用远程服务器程序的链接。任何人都可以用最少的编程技能构建一个简单的“应用程序”。“无代码”成了一个流行词。很快,每个人都需要一个网站。WordPress 等工具使得非程序员无需编码技能即可创建这些网站。然而,随着技术能力的增长,成功的网站变得越来越复杂。“前端”和“后端”编程之间的分离越来越大。Python 和 JavaScript 等新的解释性编程语言占据了主导地位。移动设备增加了一个新的、无处不在的前端,需要新的技能。再一次,复杂性隐藏在了框架、函数库和 API 的背后,这些框架、函数库和 API 让程序员可以不必了解几年前他们必须要了解的底层功能。

大数据、网络服务和云计算建立了一种 “互联网操作系统” 。像 Apple Pay、Google Pay 和 Stripe 这样的服务使人们能够用最少的编程专业知识完成以前困难且高风险的企业任务,如支付。各种深入和强大的功能都可以通过简单的 API 获得。然而,互联网站点以及连接它们的网络协议和 API 的爆炸式增长最终导致了对更多程序员的需求。

程序员不再构建每隔几年就要更新一次的静态软件产品,而是持续开发、集成和维护长期运行的服务。更重要的是,这些庞大的服务(如谷歌搜索、谷歌地图、Gmail、亚马逊、脸书和推特)的大部分工作都是大规模自动化的。程序是由人类设计和构建的,而不是人工智能,但大部分工作是由当今通用人工智能的前身(特殊用途的程序)完成的。在这些公司中,承担大部分繁重工作的“员工”就是程序本身,人类程序员是它们的管理者。现在有成千上万的程序员在做这种监督工作。他们已经生活在一个工作是创造和管理数字同事的世界里了。



“谷歌、脸书、亚马逊,或者最近的许多硅谷初创公司……雇佣了数万名员工。如果你用 20 世纪的工厂思维来思考,这些工人就像他们的工业前辈一样,每天都在打磨产品,只不过今天他们生产的是软件而不是实物商品。然而,如果你退后一步,用 21 世纪的思维来看待这些公司,你就会意识到这些公司的大部分工作——提供搜索结果、新闻和信息、社交网络状态更新和相关产品——都是由软件程序和算法完成的。这些是真正的工人,而创造它们的程序员是它们的管理者。”
——Tim O'Reilly, 《管理正在管理企业的机器人》 ,麻省理工学院斯隆管理评论,2016 年 5 月 21 日

在每一次这样的浪潮中,旧技能变得过时——仍然有用,但不再必不可少——而新技能则成为成功的关键。目前仍然有少数程序员在编写编译器,数千人编写流行的 JavaScript 框架和 Python 库,但有数千万的人在编写 Web 和移动应用程序以及支持它们的后端软件。数十亿用户在消费他们生产的产品。

这次会有所不同吗?

然而,突然之间,非程序员似乎可以简单地用英语(或你所选择的其他自然语言)与 LLM 或专业的软件智能体交谈,即可用 Python(或你所选择的其他编程语言)获得有用的原型。甚至还有一个新的流行词来形容这种情况: CHOP,即“面向聊天编程”(Chat-OrientedProgramming) 。高级推理模型的兴起开始证明可以通过提供一个解释复杂任务的高级提示词来让人工智能生成复杂的程序。因此,有很多人说“这次不一样了”,人工智能将完全取代大多数人类程序员,事实上,是大多数知识工作者。他们说,我们面临着一波普遍的人类失业潮。

但我并不这么认为。当一项突破性的技术将先进的计算能力交到一个更大的群体手中时,普通人确实可以做曾经只有训练有素的专家才能做的事情,但这种突破也带来了新的服务和对这些服务的需求,这是一种只有少数人能够理解的深奥的魔法。

如今正在到来的魔法是迄今为止最强大的,我们正在开始一段深刻的探索和创造时期,试图理解如何让这种魔法发挥作用,并从它的魔力中获得新的优势。采用这项技术的聪明的开发人员将会受到追捧,因为他们能够做更多的事情,专注于增加价值的更高层次的创造性工作。

干中学

人工智能不会取代程序员,但它会改变他们的工作。最终,程序员今天所做的大部分工作可能会像使用示波器进行调试的旧技能一样过时(嵌入式系统程序员除外)。程序员大师和有先见之明的技术观察家 Steve Yegge 指出,被取代的不是初级和中级程序员,而是那些固守过去而不拥抱新编程工具和范式的人。那些掌握或发明新技能的人将会供不应求。掌握人工智能工具的初级开发人员将能够超越那些不懂人工智能的高级程序员。Yegge 称之为 “顽固开发者之死”

我的想法不仅受到我自己过去 40 多年计算机行业经验和 Yegge 等开发人员的观点的影响,还受到经济历史学家 James Bessen 研究工作的影响。他研究了 19 世纪初第一次工业革命在马萨诸塞州洛厄尔纺织厂的发展脉络,随着熟练的工匠被由“非熟练”劳动力操作的机器所取代,人类的工资确实下降了。但 Bessen 通过比较新工业工厂工人和旧家庭手工艺人的工资记录,发现了一件奇怪的事情。一名学徒工匠达到熟练技工的全额工资所需的时间,与新入门级非熟练工厂工人达到全额工资和生产力所需的时间差不多。这两种体系下的工人实际上都是熟练工,只是拥有不同的技能。

Bessen 发现,在工业革命的头 50 年里,工资水平在大部分时间里都保持平稳或低迷,然后才开始飙升并带来普遍的繁荣,其中主要有两个原因。首先,工厂主囤积了新生产力带来的好处,而不是与工人分享。第二个原因是,最大的生产力增长需要几十年才能实现,因为关于如何最好地利用新技术的知识尚未广泛传播。发明家们花了几十年时间才让机器变得更加强大,使用机器的人想出了新的工作流程使机器更加高效,创造出了可以用机器制造的新产品,更广泛的企业采用了新技术,工人掌握了使用这些新技术所需的技能。工人们不仅需要新的技能来使用机器,还需要修理、改进机器,创造机器所暗示但尚未完全实现的未来。所有这一切都是通过 Bessen 称之为“干中学”的过程来实现的。

只有少数人走在采用新技能的前列是不够的。Bessen 解释说,“对工厂、行业和社会来说,重要的不是培训一个工人需要多长时间,而是创造一支稳定、训练有素的劳动力队伍需要多少时间”(《干中学》( Learning by Doing ),第 36 页)。今天,每一家将受到这场革命影响的公司都需要承担起责任。我们需要一支精通人工智能的劳动力队伍。毕竟,编程到底是什么?不就是人类让计算机执行命令的方式吗?“编程”越来越接近人类语言,我们的机器可以理解我们,而不必让我们用它们的母语 0 和 1 或某种专门编程语言的混杂语与它们交谈,这应该是值得庆祝的。

人们将创造、使用和改进更多的程序,新的行业将诞生,以便管理和构建我们所创造的东西。历史的经验告诉我们,当自动化使人们想要或需要的产品变得更便宜、更容易的时候, 需求的增加往往会导致就业的增加 。只有当需求得到满足时,就业率才会开始下降。在编程方面,我们离这一点还差得很远。

杰文斯悖论又来了!随着 AI 变得更高效、更容易获得,我们将看到它的使用量的激增,变成一种我们欲求无穷的商品。 https://t.co/omEcOPhdIz
——萨蒂亚·纳德拉(@satyanadella) 2025年1月27日

毫不奇怪,沃顿商学院教授兼 AI 布道者 Ethan Mollick 也非常支持 Bessen 的研究观点。这就是为什么他如此有说服力地主张“始终把 AI 摆在台面上”,让它参与你工作的方方面面,并探索“什么是有效的,什么是无效的”的边界。这也是为什么他敦促公司使用 AI 来增强员工的能力,而不是取代他们。关于如何应用这项新技术,有很多东西需要学习。 企业应用研发的最佳来源是对现有员工的探索 ,因为他们使用 AI 来解决问题并寻找新的机会。

编程的定义将会改变

微软副首席技术官之一 Sam Schillace 同意我的分析。在最近的一次对话中,他告诉我,“我们正在围绕 AI 系统发明一种新的编程范式。当我们从桌面时代进入互联网时代,尽管技术栈的层级保持不变,但每一个层级中的东西都发生了变化。我们仍然有编程语言,但它们从编译型变成了解释型。我们仍然有团队,但他们从瀑布式变成了敏捷式,再到 CI/CD。我们仍然有数据库,但它们从 ACID 变成了 NoSQL。我们从一个用户、一个应用程序、一个线程变成了多用户、分布式,等等。我们现在在用 AI 做同样的事情。”

以下是一些正在组装成新 AI 技术栈的技术,这甚至还不包括大量的 AI 模型、它们的 API 和云基础设施,而这已经过时了!

“AI工程全景” ,来源:Marie-Alice Blete 发布自 GitHub

但是,新工具、框架和实践的爆炸式增长只是编程变革的开始。Schillace 指出的一个问题是,模型不像人类那样拥有记忆,即使拥有很大的上下文窗口,它们也很难做到他所说的“元认知”。因此,他认为人类仍然需要为他们的 AI 共同开发者提供大量的上下文。

Schillace 在 最近的一篇文章 中进一步阐述了这一观点。他写道:“大语言模型和其他 AI 系统正在试图实现思维自动化。这与工业革命期间的运动自动化有着惊人的相似之处。今天,这种自动化仍然很粗糙:我们正在做相当于抽水和锤打之类的认知任务——像总结、模式识别和文本生成这样的基本任务。我们还没有弄清楚如何为这种新能源构建强大的引擎,我们甚至还没有达到 AI 的机车阶段。”

即使是在机车阶段,在很大程度上也只是扩展了人类在移动物体时所能够施加的蛮力。下一个关键突破是增加对这种力量的控制手段。Schillace 问道:“传统软件工程在这里会不会并不完全适用?构建 AI 是否需要完全不同的实践和控制系统?我们正在尝试创造新的思维方式(我们对运动的模拟):更高层次的、元认知的、自适应的系统,它们可以做的不仅仅是重复预先设计的模式。为了有效地使用这些模式,我们需要发明全新的工作方式、新的学科。正如早期蒸汽动力的挑战催生了冶金学一样,AI 的挑战将迫使认知、可靠性和可扩展性等新科学的出现,而这些领域目前尚未完全存在。”

AI 技术的商业应用挑战

Bret Taylor,前 Salesforce 联合首席执行官、前 Meta 首席技术官,很久以前还担任过谷歌地图团队负责人,现在是 AI 智能体开发商 Sierra (一家开发和在商业中应用 AI 技术的公司)的首席执行官,在最近的一次访谈中告诉我,他认为公司的 AI 智能体将成为其主要的数字接口,与公司的网站、移动应用一样重要,甚至可能更重要。一家公司的 AI 智能体必须对其所有关键业务政策和流程进行编码,这是 AI 最终能够独立完成的事情,但现在 Sierra 还必须为每个客户指派一个工程团队来帮助实施。

“将一个很酷的平台和一系列业务流程整合成一个智能体,这最后一英里的路实际上相当难走。”Bret 解释说,“现在出现了一个新的角色,我们称之为 智能体工程师 ,一个看起来有点像前端 Web 开发者的软件开发人员。这是软件领域最常见的原型。如果你是一名 React 开发人员,你可以学习开发 AI 智能体。这是一种重新掌握技能并使技能变得有用的绝妙方式。”

当人们可以与一个能够真正解决他们问题的 AI 智能体交谈时,谁会愿意费力地拨打客户服务电话呢?但要把这些智能体做好将是一个真正的挑战。难的并不是编程,而是对业务流程的深刻理解,以及思考如何改变它们让它们能够利用新的能力。仅仅简单地复制现有业务流程的智能体就像简单地复制纸质表单的网页或移动应用程序一样令人尴尬。(是的,这些仍然存在!)

谷歌 Chrome 用户体验负责人 Addy Osmani 称之为 “70%的问题” :“虽然工程师们报告说,使用 AI 可以大大提高工作效率,但我们日常实际使用的软件似乎并没有明显变得更好。”他指出,使用 AI 代码生成工具的非程序员可以制作出很好的演示或解决简单的问题,但他们会被卡在复杂程序的最后 30%,因为他们不知道如何调试代码并引导 AI 找到正确的解决方案。

当你看到一位高级工程师使用 Cursor 或 Copilot 等 AI 工具时,看起来就像魔法一样。他们可以在几分钟内构建出整个功能,包括测试和文档。但仔细观察,你会注意到一件至关重要的事情:他们不只是接受 AI 的建议……他们会运用多年来积累的工程智慧来塑造和限制 AI 的输出。AI 加速了实现过程,但他们的专业知识是保持代码可维护性的关键。初级工程师经常会忽略这些关键步骤。他们更容易接受 AI 的输出,导致我所说的“纸牌屋代码”——看起来很完整,但在现实世界的压力下会崩溃。

对此,新书《人工智能工程》( AI Engineering )的作者 Chip Huyen 在给我的一封电子邮件中 t 提供了一个具有启发性的观点:

我不认为 AI 引入了一种新的思维方式,而是揭示了真正需要思考的东西。
无论多么手工化,如果一项任务只能由少数受过良好训练的人完成,那么这项任务就被认为是脑力劳动。一个例子是写作,即将单词抄写到纸上的物理行为。在过去,当只有一小部分人识字时,写作被认为是脑力劳动。人们甚至为自己的书法感到自豪。如今,“写作”一词不再指这种物理行为,而是将思想整理成可读格式的更高层次的抽象。
类似地,一旦编码物理行为可以自动化,“编程”的含义也将发生变化,变成将想法组织成可执行程序的行为。
斯坦福大学计算机科学系主任 Mehran Sahami 简单地说道:“计算机科学是关于系统思维,而不是编写代码。”

当 AI 智能体开始与智能体对话……

正确地阐述问题变得更加重要。作为一个提供对公司所有业务流程访问地企业前端智能体,它不仅要与消费者对话,还要与消费者的智能体和其他公司的智能体对话。

智能体方程整个这一侧更加难以捉摸。我们还没有开始建立独立 AI 智能体之间的协作标准!最近一篇 关于智能体基础设施需求的论文 指出:

目前的工具在很大程度上是不够充分的,因为它们不是为了塑造智能体如何与现有机构(如法律和经济体系)或参与者(如数字服务提供商、人类、其他 AI 智能体)互动而设计的。例如,对齐技术本质上并不能向交易对手保证,当用户指示智能体执行非法操作时,某些人将会被追究责任。为了填补这一空白,我们提出了智能体基础设施的概念:智能体之外的技术系统和共享协议,旨在调解和影响它们与环境的交互和对环境的影响。智能体基础架构包括新工具,也包括对现有工具的重新配置或扩展。例如,为了促进问责制,将用户与智能体联系起来的协议可以基于现有的用户身份验证系统(如 OpenID)进行构建。正如互联网依赖于 HTTPS 等基础设施一样,我们认为智能体基础设施对智能体生态系统同样是不可或缺的。我们确定了智能体基础设施的三个功能:1)将动作、属性和其他信息归因于特定的智能体、用户或其他参与者;2) 塑造智能体之间的互动;3)检测和纠正智能体的有害行为。

这里有大量的协调和设计问题需要解决。即使是我们能想象到的最好的 AI 智能体,如果没有人类的指导,也无法解决这样复杂的协调问题。这里需要的编程工作量足以让人工智能辅助程序员至少在未来十年内都忙得不可开交。
简而言之,有一大堆新的软件需要被发明出来,这不会仅仅由 AI 独立完成,而是由人类程序员借助 AI 的超能力来实现,而这些人类程序员需要掌握很多新技能。

我们正处于创造未来的早期阶段

有太多新东西需要学习,有太多事情需要做。所以,让我们大胆地假设 AI 共同开发者的工作效率是程序员的十倍。(具体情况可能有所不同,这取决于开发人员对学习新技能的渴望程度。)但我们也要承认,一旦发生这种情况,企业、科学和我们构建的基础设施的“可编程表面积”将相应地增加。如果使编程发挥作用的机会增加了 20 倍,我们仍然需要两倍这种新的“10 倍生产力”程序员!
用户的期望也将提高。仅仅简单地利用更高的生产力来降低成本的企业将会输给那些投资于利用新能力来构建更好服务的公司。
正如长期从事软件开发的 Simon Willison 所指出的那样,AI 让 对自己的项目更加“雄心勃勃”

从另一个能力爆炸式增长的领域吸取教训:尽管 CPU/GPU 的价格和性能受益于摩尔定律,但如今渲染漫威超级英雄电影的一帧画面可能与渲染第一部皮克斯电影的全部内容需要同样长的时间。事实证明,电影行业并不满足于更快、更便宜地制作低分辨率的粗制滥造的动画,额外的算力被用于对逼真的毛发、水、云、反射和更多分辨率像素进行数千次的细微改进。技术改进带来了更高的质量,而不仅仅是更便宜、更快的交付。有些行业可以通过选择更便宜、更快的产品而不是更高的生产价值来实现(想象用户生成在线视频的爆炸式增长),所以它不会是非此即彼的选择。但质量将在市场上终会占有一席之地,它总是如此。

想象一下数以千万计的业余 AI 辅助程序员(AI-Assisted Programmer)使用像 Replit Devin 之类的 AI 工具,或者像 Salesforce、Palantir 或 Sierra 等企业提供的解决方案,他们偶然发现能够吸引数百万人的用例的可能性有多大?他们中的一些人将会成为与 AI 合作创造下一代软件的企业家。但他们的许多想法将会被现有的专业开发人员采用、完善和规模化。

从原型到生产的旅程

在企业中,AI 将使那些更接近问题的人能够更容易地构建解决方案。但最好的解决方案仍然需要走完 Palantir 首席技术官 Shyam Sankar 所说的 “从原型到生产的旅程” 。Sankar 指出,AI 对企业的价值在于“自动化、企业自主性”,但他也指出,“自动化受制于边缘案例。”他回忆起了 2005 年赢得 DARPA 大挑战赛(Grand Challenge)的自动驾驶汽车 Stanley:虽然能够做一些了不起的事情,但需要再开发 20 年才能完全处理城市驾驶的边缘情况。

“工作流程仍然很重要,”Sankar 认为,程序员的工作将是理解传统软件可以做什么,AI 可以做什么、还有什么需要人来做,以及如何将事情串在一起以便真正地完成工作流程。他指出,“一个能够让你捕捉反馈并学习边缘情况以便尽快到达目的的工具链才是成功的工具链。”在 Sankar 设想的世界中,AI“实际上将解放开发人员,使他们能够更多地深入业务领域,并在他们能产生影响的地方发挥更大作用。”与此同时,顶尖行业专家将在 AI 助手的帮助下成为程序员。失业的不是程序员,而是那些在每个工作岗位上都没有成为 AI 辅助程序员的人。
这并不是编程的终结,而是一次重塑的开始。

大会推荐:
在 AI 大模型技术如汹涌浪潮席卷软件开发领域的当下,变革与机遇交织,挑战与突破共生。2025 年 4 月 10 - 12 日, QCon 全球软件开发大会 将在北京召开,以 “智能融合,引领未来” 为年度主题,汇聚各领域的技术先行者以及创新实践者,为行业发展拨云见日。现在报名可以享受 8 折优惠,单张门票立省 1360 元,详情可联系票务经理 18514549229 咨询。








请到「今天看啥」查看全文


推荐文章
硕士博士读书会  ·  日本人镜头下的80年代中国
8 年前
猎奇漫画部  ·  恐怖漫画丨渣男的下场
7 年前
吉他谱  ·  音阶和和弦指法(上篇)
7 年前