UML之父:Dario大错特错,根本不懂软件工程!软件工程不会死亡!

发布时间:2026-02-10 13:16  浏览量:3

近日,“互联网已死”、“SaaS 已经被 AI 扼杀”的声音,再次被各种新奇酷炫的 Agentic 产品发布、以及不少 AI 领域的大佬类似“代码已经不值钱”的言论,拉扯了出来。

事实真的如此吗?显然不是。

不少知名的投资人、企业家都很快进行了反击。比如 a16z 的知名投资人 Jutine Moore 就发布了推特来调侃“SaaS 已死”这种言论是多么天真:

“好像你真能让财富500强企业放弃Salesforce,转而使用一个13岁小孩用AI写的CRM系统似的!”

再比如,SaaS 界的另一个扛把子 Databricks,其 CEO Ali Ghodsi 更是直接晒出了自己的2025年的收入成绩单:同比增长了 65%,营收年化率突破了 54 亿美元。

大家都会担心,“哦,SaaS 公司以后会怎么样?AI会对这些公司产生什么影响?”

然而对我们来说,它只会增加使用量!

再比如,这位真正从事Coding行业的重磅人物,Grady Booch,没错,就是被很多人称为“

UML(统一建模语言)之父”

的那位软件工程大师,即便已是 71 岁高龄,都忍不住出来点名喊麦 Anthropic 的 Dario,并怒斥道:Dario 说AI会淘汰掉软件工程,简直大错特错、胡说八道!

Dario,我尊重你的观点,但我们必须意识到,我们所处的立场并不相同。他领导着一家需要盈利的公司,需要向自己的利益相关方讲话。

备注:

在 UML 之前,Grady 已经凭

Booch Method

成名。这是 90 年代最有影响力的面向对象设计方法之一,直接塑造了一代工程师对“系统如何被理解、被拆解、被沟通”的认知方式。

职业生涯方面,他长期在

IBM Research

工作,目前依旧在担任首席科学家,专注于具身认知领域。

此外,他还著有多部塑造现代软件开发的书籍和论文。

在 Grady 看来,软件行业每隔几十年都会被宣称“已死”或“即将被自动化取代”,但事实证明,每一次“存在主义危机”反而成为了软件领域的黄金时代!

他指出,自 20 世纪 40 年代以来,计算机领域已经诞生了三个黄金时代,而且每一个黄金时代都是在当时的制约下兴起的。

“快速变革的时期往往会带来真正的进步,同时也会造成过高的期望。”

他表示,最近一次的黄金时代,其实早在2000年前后就开始了,而并非只是在ChatGPT诞生后才开始的。

对于前不久 Dario 在达沃斯论坛上“软件工程即将完全自动化”的说法,Grady 给出了三个反驳的理由。

首先,Dario 对“什么是软件工程”本身存在根本性的误解。软件工程师,是在多种力量之间做权衡和取舍的工程师。代码只是我们使用的工具之一,但绝不是唯一的驱动力。

他和他的同事们所谈论的内容,没有一项真正触及软件工程师每天必须面对的那些决策问题,而这些问题本身也根本不在可自动化的范围之内。

他们关注的主要是最低层级的自动化,这在我看来,很像当年编译器刚出现时发生的事情。

第二,如果你观察像 Cursor 这样的工具,它们本质上是基于一组被反复解决过的问题进行训练的。这跟第一代,第二代软工换件时代做的事情是类似的,面向一类相对稳定的问题,于是围绕这些问题构建了大量库。

如果我要在 CRUD 之上构建一个 UI,或者做一个以 Web 为中心的系统,那当然可以完成。

但 Dario 忽略了一点。计算世界远比“以 Web 为中心的大规模系统”要广阔得多。

软件世界比他所关注的那个世界要大得多,它不仅仅是所谓的软件密集型系统。

事实上,还有大量领域尚未被自动化,我们只是不断把边界向外推而已。

第三,目前的 AI Agent 主要在处理的系统类型,本质上是在自动化那些我们已经反复见过、并且被充分训练过的模式。言外之意,AI Agent 只是对于那些成千上万次被验证过的“模式”做了更高层级的抽象,但对于新问题、新任务的处理依旧存在局限性。

当然,Grady 并不是否定 AI。相反,他认为现在智能体做的不少应用,都已经非常成功。我们即将来到一个“软件业余爱好者的时代”。

而代码则会分为两种:一种是“用完就扔掉的、不具备经济可行性”的可自动化的代码;而另一种则是会长期存在的软件。

为此,他提醒:做iOS应用的岗位会减少,因为 AI 已经可以做得很好。那程序员应该怎么办?要转行吗?

他的答案是:继续向更高一层抽象迈进,开始真正关心“系统”本身。如果想构建长期存在的软件,开发者就要从“写程序和应用”,转向“处理系统”。

具体能力项方面,软件工程师就需要具备在规模化条件下管理复杂性的能力,既知道如何处理技术因素,也能处理人的因素,那么你的工作不仅不会消失,反而会变得更加重要。

总之,Grady 看来,系统思维、人类判断和责任感仍然是“软件工程”这项工作的核心。

这次播客,还有许多非常精彩的内容,比如千禧年前后的“千年虫”带来的末日恐慌、IBM 在上世纪60年代大胆的将硬件和软件分开,单独对软件收费、再比如 80 年代基于规则的 AI 最终是如何走向破灭,可以说满满的“技术回忆杀”!

再比如,Grady还举了一个“蟑螂”的例子来建议今天关心智能体、关心复杂系统的人,回到这些系统学、生物学、神经科学的研究上来。

看看一只蟑螂。它并不聪明,但它没有一个中央大脑,却能完成很多复杂而有效的行为。

篇幅关系,这里不再一一赘述了。

小编为大家梳理了精彩观点,祝大家小年快乐!

Grady

从今天回头看,第一个软件黄金时代的做法显得相当原始,无论是把排序算法,还是像你刚才提到的IBM 分发的一些函数,简单地打包在一起。但需要澄清的是,这些事情并不是 IBM 主导完成的,而是完全由社区驱动。IBM对此表示支持,但并没有直接控制或推动这一进程。

备注:

大约从40年代末持续到70年代末。这一时期出现了像 Ed Yourdon、Tom DeMarco、Larry Constantine 等重要人物,ERP等概念也开始萌芽。

这一点非常重要,因为这实际上就是最早形态的开源软件。开源的理念在那个年代就已经存在了。同时还要放在当时的软件与硬件经济模式下来看,在那个时期,软件几乎是由主要厂商免费提供的。

IBM 直到20世纪60年代后期才开始对软件单独收费。当他们意识到“原来软件本身也可以成为一种商品”之后,才正式将软件与硬件解耦,作为独立产品进行销售。但在更早的时候,存在着一个极其活跃的社区。人们会说:“我写了这个工具,你拿去用吧,没问题。”在那样的环境下,开源是一种非常自然的存在。

类似的事情也发生在第二个软件工程黄金时代(80年代到千禧年)。随着操作系统的崛起,开源软件再次兴起。

只是这一次,它发生在一个新的抽象层次之上

比如说,有人会写一个新的库,用来驱动当时新潮的CRT 显示器,然后说:“你拿去用吧。我自己留着也没什么竞争优势,但它能让我构建一些非常酷的东西,你也可以用。”

于是,开源从第一个黄金时代继承了理念,在第二个黄金时代真正扎下根来,只不过作用在了不同的抽象层面。

与此同时,在经济层面,还有一个长期潜伏在背景中的变化逐渐浮现,那就是平台的崛起。随着这些库变得越来越庞大,当我们进一步迈向分布式系统时,就出现了当年所谓的“面向服务架构”。

当时我们已经拥有了HTML这样的技术,可以在网络上来回传递链接。但总会有一些“想得更远的人”开始设想:如果我们能共享图片,会不会很酷?这正是 Netscape 所做的事情之一——他们扩展了 HTML,使其能够嵌入图片。

接着,又有人提出:如果我们能通过HTML在网络中传递消息呢?于是,互联网通过HTML和HTTP协议,突然成为了一个更高层次的抽象媒介,不仅可以传递信息,甚至可以承载过程。但这些能力需要被系统化、被“打包”起来。

于是,面向服务架构(SOA)、SOAP,以及各种面向服务的协议陆续诞生。它们构成了我们今天所看到的技术体系的前身,也在第二个黄金时代为“平台时代”的到来奠定了基础。

后来像Bezos这样的人,真正把这一切推向了我们今天所熟悉的形态:一个个由 API 围绕起来的、彼此隔离的“平台孤岛”。

主持人

当你说“平台的崛起”时,你脑海里具体指的是什么样的平台?

Grady

AWS 是一个很好的例子,Salesforce 也是。它们本质上是经济上极具吸引力的“城堡”,外围有护城河。像 Salesforce 这样的公司,允许你付费跨过这条护城河,来使用它们提供的能力,当然这并不是一笔小开销。

主持人

确实,绝对不是小钱。

Grady

但前提是如果你自己去做这些事情,成本会高得多。所以对大多数公司来说,向这些平台付费反而是更合理的选择。正是在第二个黄金时代,我们看到了这种商业模式的成型。因为某些类型的软件开发成本已经足够高、复杂度也足够大,最终催生了SaaS 公司的产业形态。

如果我们把时间拉到90 年代末、2000 年代初,那同样是一个极其活跃的时期,在很多方面都与第一个黄金时代相似。互联网开始迅速普及。你还记得自己第一次拥有电子邮箱是什么时候吗?

主持人

我第一次有电子邮箱大概是在2005 或 2006 年,那时 Gmail 刚上线不久,一切都还很新鲜。你第一次用电子邮箱是什么时候?

Grady

1987 年,当时还是 ARPANET。那时候我们甚至有一本小册子,大概有一百页,列出了全世界所有人的电子邮箱地址,非常有意思。你现在还能在网上找到那些名单,也能看到我的邮箱地址。当然,现在已经无法使用了,因为顶级域名体系早已不同。所以在电子邮箱真正变成“酷”的东西之前,我就已经在使用它了。

随着电子邮箱在第二个软件工程黄金时代逐渐商品化,成为一种基础设施,软件开始真正渗透进文明的缝隙之中。它不再只是服务某些行业或商业流程的工具,而是成为了文明结构本身的一部分。这一点非常关键。

第一黄金时代中我们曾经反复担忧的许多问题,到那个时候基本已经被解决,它们变成了“空气”——我们不再刻意思考算法,因为所有人都默认它们是存在的、可用的。

技术就应该是这样的

。最好的技术会“蒸发”,会消失在背景中,成为我们呼吸的空气。

这正是当时正在发生的事情。而也正是在第二个黄金时代,奠定了我们今天所处位置的基础。

大约在2000 年前后,发生了几件重要的事情:一方面是Y2K问题(备注:Y2K,千年虫问题),另一方面是互联网泡沫的破裂。那时互联网已经发展得非常庞大,许多企业建立在它之上,但在经济上并不成立,于是泡沫破裂。同时,大量精力被投入到解决 Y2K 问题上。

事后有人说:“其实根本不用担心。”但如果你身处其中,就会明白,那确实是一场需要大量专业投入的工程。如果这些工作没有完成,许多问题真的会发生。

这是一个非常好的例子,说明最好的技术,往往是你根本看不见的。为了避免一个最终没有显现的问题,人们投入了巨大的时间和金钱,而这恰恰是一件好事。

主持人:

你刚才提到的 Y2K 事件。我记得临近 2000 年那段时间,整体压力非常大,甚至还有电影预测世界会崩溃,大家都在担心系统会不会全面宕机。最后几个月里,这种恐慌情绪变得尤为强烈。

那时我还是个孩子,但跨入2000年新年,可能是我记忆中最紧张的一次:你只能祈祷一切顺利。结果什么也没发生,于是后来有人觉得这只是一场“骗局”。经历过那段时期的人,多少都学会了对这类预测保持怀疑。

但你说得没错——确实有大量工作被提前投入进去,正是这些努力,才确保了那个时间溢出问题没有在错误的地方发生。

Grady:

现在让我们在脑海里把时间拨回到2000 年代的第一个十年。那是一个非常有意思的时期。尽管经历了泡沫破裂,但依然有太多值得去做的事情,也有大量优秀的软件等待被创造。我们在很大程度上仍然只受限于自己的想象力。

Grady:

这里我想稍微暂停一下,补充一点之前没有提到的历史。我们一直在讨论软件工程本身,但在AI 领域,其实同时还发生着一条并行发展的历史,而且同样经历了几个世代。

AI 的第一个黄金时代出现在 20 世纪 40 到 50 年代,当时有 Herbert Simon、Newell,尤其是 Minsky 这样的代表人物。他们的核心观点是:可以通过符号方法来人工构建智能。这构成了 AI 的第一次真正高峰。

在那个时期,人们也尝试过神经网络,做出了一个叫 SNARC 的系统,这是第一个用真空管实现的人工神经元——一个神经元大约需要五个真空管。但后来英国发布了一份报告,指出我们在这个方向上投入了大量资金,却几乎没有取得可行成果。于是,第一个黄金时代就此终结:人们逐渐意识到,不仅难以产出有意义的应用,而且神经网络在当时看来几乎是一条死路。这在很大程度上是因为当时既没有足够的算力,也缺乏算法层面的概念与抽象,人们并不知道该如何在规模化之后使用这些方法。

AI 的第二个黄金时代大致出现在 80 年代。一些研究者提出了另一条路径:用规则来建模智能。于是,基于规则的机器学习、专家系统相继出现。但这条路最终也走向了 AI 寒冬。

顺带一提,那段时间在硬件领域其实也非常活跃,比如Lisp Machine、Thinking Machines(备注:80年代并行计算+AI的巅峰实验,1994年破产了) 都是在那个时期诞生的。你会看到软件、硬件与计算机体系结构在彼此交织、相互促进,但最终仍然失败了,因为一旦规则数量超过几百条 if-then,就几乎无法扩展。我们根本没有能力构建真正有效的推理引擎。

于是,时间再次来到2000 年代的前十年。那时 AI 基本退回到了“后屋”,不再站在舞台中央;但软件工程本身却迎来了大量令人兴奋的进展。分布式系统开始普及,个人电脑进一步走入大众生活,软件真正进入了每一个人的日常,对软件的需求反而变得更大。

我有一个可能略显争议的判断:我们正处在软件工程的第三个黄金时代,而且它其实在千禧年前后就已经开始了,而不是现在才出现。

最早的信号之一,是抽象层次的再次跃迁——

从单个程序组件,提升到库、包,乃至平台的一部分。

“我需要消息传递?那我不自己实现了,直接用一个提供消息能力的库。”“我需要管理大规模数据?那就用 Hadoop 之类的系统。”虽然 Hadoop 当时还没有真正出现,但它的种子已经在那个时期开始发芽。

我们再次看到抽象层级的上移:从单一程序,到系统的子组件。这是一场重大的转变,我们的方法论、编程语言也随之演进。这个第三个黄金时代,其实已经持续了很多年。

先不急着下结论。今天在编码领域出现的AI 辅助工具、AI Agent,在本质上都是对这一趋势的回应——我们希望加速这些抽象的使用。库和平台已经多到超出任何个人的掌控范围,而真正熟悉它们的人却不够多,于是我们借助工具来提高使用这些抽象的效率。

这也是我看待Cursor、ChatGPT 等 AI Agent 的背景:在某种意义上,它们是推动第三个黄金时代的那些力量的延伸。我们正处在一个高度活跃的阶段,只不过当下的问题已经与第一代、第二代完全不同。

现在的首要问题是:软件太多了,我们该如何管理?安全与可信问题变得尤为突出

——有没有人向其中注入我不能信任的东西?我该如何防御?在软件供应链中植入恶意内容变得异常容易,我要如何阻止“坏人”?像 Stuxnet 这样的案例,就清楚地展示了软件与间谍行为之间的紧密关系。

此外,还有经济层面的问题。我们现在拥有了“大到不能倒”的公司。如果微软倒了会怎样?如果谷歌倒了会怎样?它们在全球经济中的重要性如此之高,以至于在某个角落轻微的震荡,都可能在世界另一端引发连锁反应。

所以,

第三个黄金时代的问题与前两代不同,但同样令人兴奋

。最后,还有伦理问题:既然我可以写出这样的软件,我就可以在一天中的每一刻追踪你的位置。我能做到,但我是否应该这么做?有人会认为这是为了人类的福祉;也有人会对此持保留态度。

主持人:

我很喜欢你这样展开这个问题的方式。既结合了自己的亲身经历,也回顾了很多我们其实很少停下来反思的历史,事情是如何开始的,以及这个行业本身有多么“年轻”。如果你仔细想想,70到 80年既可能很长,也可能并不算长,顶多只是几个世代的跨度。

不过,我在当下的行业里观察到一个现象:从整体逻辑上看,一切似乎都是自洽的,但对很多软件工程师来说,却产生了一种强烈的矛盾感。现在弥漫着一种近乎生存层面的焦虑,而且在这个冬季假期之后明显加速了。

假期之前,这些AI、大模型更多只是用来自动补全,偶尔生成一些代码;但假期之后——我不知道你有没有体验过这些新模型,我自己试过——它们已经能够生成非常高质量的代码,高到让我开始真正信任它们。

从软件历史来看,我们一直认为写代码是一件非常困难的事情,很多人要花很多年才能学会,再花更长时间才能做到优秀。于是现在,很多人开始陷入一种存在主义危机:第一,机器居然能在这么短的时间里写出如此优秀的代码,这到底发生了什么?第二,更关键的问题是:接下来会怎样?这会不会动摇整个职业?

写代码一直与软件工程高度绑定,但现在似乎不再完全如此。

你刚才让我们先从历史视角“深呼吸”了一下,那么站在今天,你如何看待正在发生的这一切?

Grady:

我想先明确一点:这并不是开发者第一次面对所谓的“存在主义危机”。在第一代和第二代软件工程时期,都出现过类似的担忧。所以从历史的角度看,我会觉得,“这一关也会过去”。

当我和那些对此感到焦虑的人交流时,我总是告诉他们:不要慌,把注意力放在基本功上,因为那些能力是不会消失的。

我曾经有幸见过Grace Hopper。她非常迷人,像一枚小钢炮,充满能量。我给你的读者一个小建议:去搜索一下 “Grace Hopper + David Letterman”,她曾上过《大卫·莱特曼秀》,你会立刻感受到她的个性。当然,我们也会把链接放在节目注释里。

备注:

Grace Hopper(1906–1992)

,美国海军少将、计算机科学家。她是世界上第一批推动编译器的人,COBOL 语言的核心推动者。之所以Grady称呼她为“小钢炮”,是因为她个子不高、语速快、说话直接、对权威和教条毫不客气的性格。

她在20 世纪 50 年代就意识到一件极其重要的事情:

软件是可以与硬件分离的

。这在当时对那些制造早期计算机的人来说,是一种巨大的威胁,因为他们坚信,只有与机器紧密绑定,才能构建高效系统。

很多业内人士当时公开撰文表达担忧,认为这种做法会摧毁他们正在做的一切——而从某种意义上说,它确实“摧毁”了原有模式。于是,我们迎来了最早的编译器。

后来Fortran的出现也是如此。人们当时说:“我们写汇编比任何人都好,甚至比机器生成的还好。”

但事实证明,当抽象层次从汇编提升到高级语言时,这种判断是错误的。

于是,又有一批人因为抽象层次的提升而感到不安。他们清楚地意识到,自己赖以为生的技能正在消失,并且会被他们亲手创造出来的工具所取代。只是当年这种危机感没有今天强烈,因为那时从业者并不多——也就几千人而已。

Grady:

而今天,我们谈论的是数以百万计的人,他们完全有理由问一句:“那我该怎么办?”

我和你一样,经常遇到年轻开发者来问我:“Grady,我现在该怎么做?我是不是选错了行业?要不要转行?”而我的回答始终是:

这是一个做软件的激动人心的时代。

原因有几个。首先,我们正在再次上移一个抽象层级,就像过去从机器语言到汇编、从汇编到高级语言、从高级语言到库的转变一样。现在,同样的事情正在发生。

作为一名软件开发者,我不再需要关心那么多底层细节。在我看来,这是一种巨大的解放,它把我从大量枯燥乏味的工作中解脱出来。

当然,基本功依然重要。只要你选择构建的是“能够长期存在的软件”——而不是那种写完就丢的代码——这些能力就始终有价值。如果你本来就打算写完就扔,那怎么写都无所谓,这本身也完全没问题。

我看到很多人正是用AI Agent 来完成这种工作,这非常棒。你可以自动化许多过去在经济上根本不可能实现的事情。如果只是你一个人使用,那就更理想了。

从某种意义上说,这就是软件的“业余爱好者时代”,就像个人计算机刚出现的那些年。人们自己动手折腾、构建,好东西会从中诞生,好点子也会不断涌现。

主持人:

我非常喜欢这个类比。

Grady:

是的,好点子一定会出现。人们会在这个过程中建立技能,完成以前做不到的事情,把原本不具备经济可行性的工作自动化。即便这些软件本身不会长期存在,它们依然创造了真实的价值。

主持人:

这就像第一代个人计算机时代一样。你会看到一些原本与这个行业毫不相关的人进入其中,并带来令人惊讶的想法。当年,可能是一位学校老师买了一台个人电脑;而今天,我刚刚还和楼上的邻居聊天,她是一名会计,却已经开始用ChatGPT 帮她写一些小脚本,用来改进团队的会计流程。她并不是软件工程师,但已经在创造属于自己的、一次性使用的软件。

Grady:

完全同意。这些相似之处让我感到振奋,我也非常鼓励这种趋势。这正是我们身处一个如此充满活力时代的原因。

在个人计算机刚出现的早期,发生过完全一样的事情。你会看到艺术家被PC,尤其是 Amiga 吸引;你会看到游戏玩家意识到,他们终于拥有了一种此前从未有过的表达媒介。这也是为什么那个年代如此活跃。

现在,同样的事情正在再次发生。所以,很多关于“我们正在经历存在主义危机”的哀叹,往往来自那些只盯着自己狭窄行业视角的人,而忽略了一个事实:正在发生的变化,其实是在扩展整个行业。

未来,会有更多软件由非职业程序员写出来,而我认为,这恰恰是最美好的部分。就像个人计算机反文化时代一样,今天正在重演同样的故事。

开发者们别担心,Dario简直是大错特错,软件工程不会被AI淘汰,有太多理由证明AI的局限性

主持人:

我很喜欢你刚才的说法。不过,我也想提出一个“但是”。

有一个人我一直在关注——Anthropic 的 CEO Dario Amodei。一般来说我并不太关注 CEO,但他大约一年前说过一句非常有意思的话:他认为,大约 90% 的代码会在一年左右由 AI 生成,而且这个比例还会继续上升。

当时我们都觉得这很荒谬,但后来事实证明,他在“代码生成”这件事上是对的,这确实发生了。接着他又说了一句更令人不安的话,我引用他的原话:“软件工程将在 12 个月内实现自动化。”这听起来就更加可怕了。

毕竟我们都清楚,写代码只是软件工程的一个子集。他这么说,你怎么看?而且你之前已经表达过非常强烈的反应。

Grady:

关于这一点,我有一两件事想说。首先,我自己就在用Claude,用的正是 Anthropic 的产品,它也是我目前最常用的系统。我用它来解决 JavaScript、Swift、PHP(是的,甚至包括 PHP)以及 Python 的问题。对我来说,它确实非常有价值,主要原因在于:有些库我想使用,但 Google 搜索效果很差,官方文档也很糟,而这些 agent 可以显著加快我理解它们的速度。

但这里有一个前提不能忽略:我在这些领域里已经有至少几十年的基础经验,我理解那些最根本的概念。这也正是我之前反复强调的一点——基本功不会消失。这在所有工程学科中都成立:基本原理始终存在,变化的只是我们使用的工具。

因此,Dario,我尊重你的观点,但我们必须意识到,我们所处的立场并不相同。他领导着一家需要盈利的公司,需要向自己的利益相关方讲话。在这样的语境下,出现一些“耸人听闻”的表述,其实并不意外。我没记错的话,他是在达沃斯之类的场合说出这些话的。

如果我要非常客气地、用一个“科学术语”来评价并放在语境中理解他的说法,那就是:这简直是荒谬。这是技术术语。因为在我看来,他不仅错了,而且是在几个关键点上都错得很离谱。

第一点,我接受他的一个判断:AI 的确会加速很多事情。

但它会消灭软件工程吗?不会。

在我看来,

他对“什么是软件工程”本身存在根本性的误解

。回到我一开始说的:软件工程师,是在多种力量之间做权衡和取舍的工程师。代码只是我们使用的工具之一,但绝不是唯一的驱动力。

他和他的同事们所谈论的内容,没有一项真正触及软件工程师每天必须面对的那些决策问题,而这些问题本身也根本不在可自动化的范围之内。他们关注的主要是最低层级的自动化,这在我看来,很像当年编译器刚出现时发生的事情。

这正是我为什么说:这只是又一次抽象层级的上移。程序员们不必恐慌——工具在变化,但你们需要解决的问题并没有发生本质变化。

我反对他观点的第二个原因是:如果你观察像Cursor 这样的工具,它们本质上是基于一组被反复解决过的问题进行训练的。这本身没有任何问题。

就像在第一代、第一次黄金时代时一样,我们面对的是一类相对稳定的问题,于是围绕这些问题构建了大量库。今天正在发生的,其实是同样的事情。

如果我要在CRUD 之上构建一个 UI,或者做一个以 Web 为中心的系统,那当然可以完成。就像你提到的那位朋友一样,这完全可行。抽象层级已经足够高了,所以他们能够独立完成这些工作。大概率他们不会基于此建立一家大型企业——当然,极少数情况可能例外——但这已经让他们能做到以前根本做不到的事情。

而 Dario 忽略了一点。我借用一句改写后的莎士比亚式表达:

在计算的世界中,还有太多东西,是你的哲学里根本没有梦到过的。

计算世界远比“以 Web 为中心的大规模系统”要广阔得多。今天我们看到的大量应用,确实集中在这些 Web 系统上,这很好,也很成功,但这并不意味着世界的其余部分已经被覆盖。事实上,还有大量领域尚未被自动化,我们只是不断把边界向外推而已。

这也是为什么我一开始讲了那么多历史故事——因为历史正在重演,或者更准确地说,是在“押韵”。同样的现象再次出现

,只不过发生在不同的抽象层级上

软件世界比他所关注的那个世界要大得多,它不仅仅是所谓的软件密集型系统。

第三点,如果你观察这些智能Agent目前主要在处理的系统类型,会发现

它们本质上是在自动化那些我们已经反复见过、并且被充分训练过的模式

而所谓“模式”,本身就是一种新的抽象形式。它不再只是单个算法或单个对象,而是代表了一整套协同工作的对象与算法体系。这些代理非常擅长对一代又一代的模式进行自动化。

我只需要用英语描述:“我想做这样一件事。”而这本来就是我描述模式的方式。也正因为如此,我才认为他说得并不成立。祝他好运吧。但在我看来,现在是一个令人兴奋的时代,而不是一个值得陷入存在主义焦虑的时代。

我想再讲一个关于抽象层级变化的例子。英语是一种非常不精确的语言,充满歧义、细微差别和模糊性。那你可能会问:既然如此,它怎么可能成为一种有用的语言?

答案是:我们作为软件工程师,其实早就已经在这么做了。我去找一个人,说:“我希望我的系统做这样一件事,大概是这个样子。”然后给他一些例子。这本来就是我的工作方式。接着,就会有人把这些描述转化为代码。

换句话说,我们早已在抽象层级上往上走了一步:我只需要说明“我希望它这样做”。举一个非常具体的例子。我最近在使用一个我以前从未接触过的库——JavaScript 的 D3 库,它可以用来构建非常复杂、精美的数据可视化。

我在网上看到一个叫 Victorian Engineering Connections 的网站,这是一个非常精致的小项目,由一个叫 Andrew 的人,为博物馆制作。你可以输入一个名字,比如 George Boole,就能看到他的名字、相关信息,以及他周围的社会网络,还可以继续点击、探索,非常有意思。

我当时想:“我也想要这种效果,但我完全不知道该怎么实现。”后来他把代码给了我,我才发现这个项目使用的是 D3,而我对 D3 一无所知。

于是我对 Cursor 说:“给我生成一个最简单的示例,用五个节点就行,让我看看。”这样我就可以开始研究代码。接着我又说:“他们真正想做的是这种效果,节点要根据类型呈现成不同的样子。”

这个过程,就像我在和一位人类协作者对话一样。我用英语表达需求,而现在,我不再需要费力地把这些需求一步步手动转化为现实,只需要和工具对话就可以了。这极大地缩短了“我想要什么”和“它最终能做到什么”之间的距离。

我认为这是非常棒的,是一次真正意义上的突破。

但请记住,正如我对 Dario 所说的,这只在一种情况下成立:当我做的,是已经被人做过成百上千次的事情时。

这些事情我本来完全可以自己学会。正如费曼可能会说的:“自己去做吧,那样你才能真正理解。”而我的回应是:没错,但这个世界上我好奇的东西太多了,我不可能每一件都亲自从头学一遍。

那就让工具来帮我完成吧,而我来决定我想做什么。

正因为如此,我才认为,这类工具代表着抽象层级的又一次跃迁——它们正在不断缩短我用自然语言表达意图,与最终编程语言实现之间的距离。

最后我想说的是:什么样的语言,既足够精确,又足够有表达力,能够用来构建可执行的产物?我们把它称为“编程语言”。

而事实是,在某些特定领域里,英语已经“足够像”一种编程语言了,就像当年的 COBOL 一样——只要结构足够清晰,用这种语言描述需求,就能得到“足够好”的解决方案,然后再由那些掌握基本功的人不断修正和打磨。这正是为什么基础如此重要。

再说一句关于“历史的押韵”:在第一和第二个黄金时代中,每一次抽象层级的跃迁,都会让某些技能过时,同时也会催生对新技能的需求。比如,当我们从汇编语言跃迁到更高层语言时,那种“精通某块硬件指令集、手工优化指令”的能力就逐渐失去了价值,取而代之的是在更高抽象层级上思考的能力。

主持人:

那么,在这一次历史跃迁中,可以说,我们正从“需要自己写代码”,走向“计算机会自动生成相当不错的代码,而我们负责检查和微调”——你认为,哪些技能会变得过时?而作为软件专业人士,哪些能力会变得更加重要?

Grady:

这是个好问题。软件交付流水线的复杂程度,已经远远超过它本该有的样子。坦率地说,如果你没有一整套完整的流水线,光是把系统跑起来就已经非常困难了。

在像Google、Stripe 这样的公司里,周围有一整套庞大而高度定制化的基础设施。注意,这里说的基础设施,本质上仍然是软件,而不只是几行裸代码。

正因为如此,这里面存在大量“低垂的果实”,非常适合被自动化。我并不需要一个人来手工填补这些边边角角的工作。相反,这正是我们开始看到智能体真正发挥价值的地方。

你可以对智能体说:“我想在世界的某个区域把这套系统跑起来。”我不想亲自去写那些复杂又混乱的代码,而是愿意让一个智能体来完成。

在这些领域,我确实认为岗位数量会减少,因为自动化在经济性上、也坦率地说在安全性上,都具有明显优势。于是,

人们就需要在构建更高层次系统、或者更简单应用的方向上重新学习、重新定位。

我还认为,那些技能主要集中在“我要给 iOS 做一个应用”这类工作的岗位,确实会失去一部分机会。因为坦白说,现在很多事情,只靠提示就已经可以完成了。

但这并不是坏事,恰恰相反,这是件好事。因为我们正在让整整一代人,能够去做过去只有专业人士才能做的事情——这和当年个人计算机时代发生的变化几乎一模一样。

那这些人接下来该怎么办?答案是:继续向更高一层抽象迈进,开始真正关心“系统”本身。所以在我看来,这次转变不再是从程序、应用转向别的东西,而是从“写程序和应用”,转向“处理系统”。

新的技能组合,正应该出现在这里。如果你作为一名软件工程师,具备在规模化条件下管理复杂性的能力,既知道如何处理技术因素,也能处理人的因素,那么你的工作不仅不会消失,反而会变得更加重要。因为这些能力极其稀缺,而且非常微妙。

主持人:

你刚才多次提到了“扎实基础”的重要性。你以前还说过一句话,我直接引用你的原话“如果没有深厚的基础和稳固的理解模型,这个领域的发展速度几乎是难以想象的。”那么,你会建议大家具体去打哪些基础?不论是仍在大学学习、准备找第一份工作的学生,还是已经工作的软件工程师,想回过头来系统夯实基础的人。

Grady:

如果你问我,在面对真正困难的问题时,我最常回去寻找答案的“精神栖息地”,

其实是系统理论

。我会建议你去读Herbert Simon 和 Allen Newell 在《人工科学》(The Sciences of the Artificial)里的工作。圣菲研究所也有大量关于复杂性和系统的研究成果。正是这些系统理论的基础,支撑着我去思考和构建下一代系统。

我想我之前也跟你提过,我曾参与过一些非常有意思的项目,和NASA 的火星任务有关。当时我们面临的问题是:如果人类要执行这种长期任务,把机器人真正放到火星表面,我们该如何设计这样的系统?

我被委托去思考这些问题,后来我意识到,NASA 实际上是想造一个 HAL。你可能注意到,我身后就有一个 HAL。是的,我对历史非常着迷,而我身后这个布置,其实也象征着“达摩克利斯之剑”。如果你知道这个故事,就会明白:国王的王座上方始终悬着一把剑,只靠一根细线支撑,让他时刻保持警醒与不安。

备注:

这里的

HAL

,指的是科幻电影《

2001:太空漫游

》(1968)里的那台人工智能电脑——

HAL 9000

。电影中给它的设定是:一台负责整艘飞船运行、导航、生命维持、任务决策的超级 AI。

这也是我把 HAL 放在身后的原因之一。当然,出于显而易见的原因,NASA 并不希望出现“杀死所有宇航员”的使用场景,所以那条路径我们从一开始就排除了。

但如果你认真看这些问题,本质上它们全都是

系统工程问题

。因为你要构建的是一个“具身”的系统——它嵌入在航天器之中,与物理世界直接互动。

而我们今天看到的大量AI 软件,其实是“非具身”的。无论是 Cursor、Copilot,还是其他工具,它们都并不直接与物理世界发生联系。因此,当时我们的研究重点,很大一部分都放在了

具身认知

上。

与此同时,我也在和一些神经科学家合作,试图更好地理解大脑的整体架构。正是在这个过程中,这些基础知识开始在我脑中融会贯通:

我逐渐意识到,系统工程中出现的很多结构,其实是可以直接迁移到超大规模系统设计中的。

举个例子,Marvin Minsky 提出的“心智社会”理论,本质上就是一种多智能体系统的架构思想。而现在,我们正正式进入智能体编程的时代,只是大多数人,才刚刚开始触及这些思想的真正价值。

如果你真的想理解多智能体系统,你必须回到系统理论

。因为这些问题早就被研究过了。去读一读Minsky 的《心智社会》,你会发现,它对如何思考多智能体协作,依然具有极强的指导意义。

再比如,

早期AI系统中体现的很多思想:全局工作空间、黑板模型等,这些都是非常重要的架构元素。

还有 Rodney Brooks 提出的“包容式架构”,灵感直接来自生物系统。

看看一只蟑螂。它并不聪明,但它没有一个中央大脑,却能完成很多复杂而有效的行为。我们甚至已经绘制出了线虫完整的神经网络,但世界并没有因此充满“邪恶的线虫”。这说明,还有其他因素在起作用——生物系统本身是有架构的。

所以回到你的问题:

从系统的角度理解架构,从生物学、神经科学以及现实世界中的复杂系统中汲取经验

,正如 Herbert Simon 和 Newell 所做的那样——这些一直在指引我走向下一代系统。

我也会建议今天关心智能体、关心复杂系统的人,回到这些基础之上。从很多意义上说,

太阳底下并没有真正全新的东西,我们只是不断用新的方式,重新应用那些早已存在的思想

。工程中的基础,一直都在那里。

主持人:

作为收尾,你已经给出了很多非常具体的阅读建议、思考路径和自我学习方向。这些在今天这个新世界里,显然都会非常有用,尤其是在智能体即将大量涌现的背景下。

比如我刚刚听说,智能体很可能会成为 Windows 11 以及操作系统的一部分,它们将无处不在。回顾以往抽象层次的跃迁,以及之前的几个“黄金时代”,你观察到那些在新黄金时代或新抽象层次刚开始时就表现得非常出色的人——即便他们在上一轮并不算特别耀眼——他们通常都做对了什么?

如果我们希望从历史中“复制”一些成功路径,你会给出什么建议?我之所以这样问,是因为这看起来同样是一种机会:抽象层次在上升,有些人会被吓住、停滞不前,但也会有新的“超级明星”顺势而上,成为智能体、AI,以及构建前所未有的复杂系统方面的专家。

Grady:

正如我之前提到的,软件领域真正限制我们的,其实从来不是技术,而是

想象力

或者更准确地说,是我们误以为自己缺乏想象力。事实上,人类并不缺乏想象力。我们完全可以构想出极其惊人的事物。真正约束我们的,是物理定律、算法构建方式,以及伦理边界。

而现在正在发生的事情是:你正在被“解放”。一些长期存在的摩擦、限制和开发成本,正在迅速消失。这意味着,我终于可以把注意力真正放回到想象力本身,去构建那些以前根本不可能实现的东西。

过去我之所以做不到,并不是因为想不到,而是因为我不可能养得起一个团队去做这些事,不可能承担那样的成本,也不可能拥有今天这样的全球触达能力。

所以,把正在发生的一切当作一次机会吧。对那些在旧有经济结构中既得利益很深的人来说,这确实可能意味着损失;但从整体来看,这是一次净增益。

因为这些变化,正在突然释放我们的想象力,让我们能够在现实世界中,实现以前根本无法落地的想法。对这个行业来说,这是一个令人兴奋的时代,同时也必然让人感到害怕——但这恰恰是应有的状态。当你站在某种美好事物的门槛上时,你会看到深渊:你可以选择说,“糟了,我会掉进去”;也可以选择说,“不,我要纵身一跃,我要翱翔。”

主持人:

Grady,非常感谢你为我们带来的这次全景式回顾、前瞻性的判断,以及如此宝贵的视角。我个人真的非常感激,也希望这次对话能给大家带来一些希望。

Grady:

我认为你确实做到了。

主持人:

这是一集非常鼓舞人心的节目。谢谢你,Grady。

有一点让我印象尤其深刻:Grady 提到,开发者其实已经多次面对过类似的“存在主义危机”。当编译器出现时,汇编程序员以为自己的职业生涯要结束了;当高级语言出现时,同样的恐慌席卷了整个行业。

但每一次,真正理解发生了什么——意识到这只是抽象层次的一次跃迁——的人,最终都走在了前面。

当我们被当下AI 能力带来的焦虑包围时,往往会忽略这种历史视角。我并不认为软件工程已经走到终点,Grady 也不这么认为。我们正站在一个新篇章的起点。如果历史能给我们任何启示,那这个篇章,一定会非常精彩。

参考链接:

https://www.youtube.com/watch?v=OfMAtaocvJw