云霞资讯网

当 AI 开始写大多数代码,编程语言为什么会变成 Agent 的控制系统 信源:Ryan Peterman|Martin Odersky(Scala 创始人)访谈|2026-08-31⁠ 这场长达57分钟的访谈,表面上是在比较Scala、Rust、Zig、Go与Python:Rust更接近硬件,却可能被过度使用;Go以有限表达力换来团队代码的一致性;Python胜在 ​

当 AI 开始写大多数代码,编程语言为什么会变成 Agent 的控制系统

信源:Ryan Peterman|Martin Odersky(Scala 创始人)访谈|2026-08-31⁠

这场长达57分钟的访谈,表面上是在比较Scala、Rust、Zig、Go与Python:Rust更接近硬件,却可能被过度使用;Go以有限表达力换来团队代码的一致性;Python胜在生态与“胶水语言”能力;Scala则试图把函数式编程、面向对象和强类型揉进同一套语言。可真正值得关注的,是Martin Odersky对AI编程提出的那个更大判断:当代码越来越多地由机器生成,编程语言的核心任务将从帮助人类“更方便地写”,转向帮助人类“更可靠地约束机器”。

这不是遥远的语言学讨论。Uber在2026年8月披露⁠,超过70%的Pull Request已被归因于本地或云端Agent,内部工程师创建了3600多个Agent skills,每天执行超过3万次。这里的“归因于Agent”不等于70%的代码完全无人参与,却足以说明一个结构性矛盾:代码生产正在被模型放大,人的审查带宽却不会按同样速度增长。过去依靠资深工程师逐行看diff、理解实现细节来控制质量;一旦Agent可以连续提交成批改动,这套机制迟早会碰到吞吐上限。

Odersky提出的解法,是把人的审查面从实现代码压缩到接口、类型和高层规格。可以把它理解为Agent软件工厂的“控制系统”:人类不再试图穷尽机器会写出的每一行代码,而是先定义它可以接触什么资源、可以产生哪些副作用、哪些状态绝不能出现,再由编译器、运行时与测试体系持续检查。类型在这里不只是告诉IDE“这个变量是字符串还是整数”,而是承载人和AI之间一份足够简洁、可审查、可机器执行的合同。

传统的memory safety只是第一层。Rust能够减少越界访问、use-after-free等内存错误,却无法单独回答一个Agent能否读取API key、能否把邮件内容发往网络、文件句柄能否逃逸出授权生命周期。Odersky团队研究的capture checking进一步把这些资源访问抽象为capability,并把“一个函数捕获了哪些能力”写入类型。一个处理机密数据的函数如果被声明为纯函数,编译器就可以拒绝其中的网络请求或文件写入;一个只在局部作用域有效的文件权限,也不能被偷偷塞进闭包带出作用域。

这套思路已经不只是访谈里的设想。Odersky团队在2026年发布了TACIT:Agent不再直接调用MCP工具,而是生成带capability约束的Scala代码,代码先通过Scala 3编译器检查,再进入REPL执行。在论文的特定安全测试中⁠,Claude Sonnet 4.6和MiniMax M2.5在“机密数据受类型保护”模式下都实现了100%的秘密不泄露,任务效用分别达到99.2%和90%;在τ²-bench上,带类型的Scala接口与普通工具调用表现相当或略好,只有SWE-bench Lite上的一个模型出现小幅下降。这个结果还不能证明TACIT已适合大规模生产,但它证明了一件更基础的事:给Agent增加静态约束,不一定要以明显牺牲任务能力为代价。

访谈中另一个容易被忽略的判断,是prompt应该成为程序的“一等公民”。今天的需求往往埋在聊天记录里,模型根据一次自然语言对话生成代码;下次只想改一个细节时,模型却可能非确定性地重写大片已经审查过的实现。若把原始意图、约束、验收标准及其与代码的映射长期保存,变更就能从“重新生成一个答案”转为“在已批准意图上做增量修改”。GitHub的Spec Kit⁠已经把“先定义、再实现”的spec-driven development做成跨Agent流程工具,但Odersky的设想还要再向前一步:规格不仅是给模型读的Markdown,还要成为可版本化、可追溯、能参与编译与验证的程序结构。

由此看,AI时代编程语言之间的竞争标准也会变化。语法是否少写几个字符、某个关键字是否优雅,权重会下降;更重要的是语言能否表达副作用、权限、资源生命周期、并发隔离与信息流,能否让模型根据编译错误自动修正,并把规格、生成来源和增量变更连接起来。价值也会沿着这条链条迁移:从代码补全与聊天界面,转向typed tool schema、capability policy、spec graph、provenance、sandbox、eval与持续验证。未来的核心开发平台,更像Agent的软件控制面,而不只是一个装了AI侧栏的IDE。

不过,这并不等于Scala会因此赢得下一轮语言战争。Scala官方文档⁠仍把capture checking标为快速演进中的实验性研究;TACIT论文也明确承认,它只能阻止越权和某些信息泄露,不能保证业务逻辑正确,不能覆盖时间等侧信道,外部命令还会逃逸出静态类型边界。更现实的架构很可能是混合式的:语言和typed DSL负责静态约束,OS sandbox与外部policy engine负责运行时隔离,测试、形式化验证和可观测系统负责结果检查。最后胜出的甚至未必是一门面向人类的新语言,也可能是Agent在后台生成、人类只审查规格的安全中间表示。

Odersky预测十年后软件工程师会更少、门槛会更高。后半句的确定性明显强于前半句。软件生产成本下降也可能释放此前不值得开发的大量需求,而METR在2026年更新实验时⁠仍强调,晚2025年AI工具对资深开源开发者的净加速估计受严重选择偏差影响,证据不足以给出稳定幅度。更稳妥的结论是:完成同一项目所需的手写代码人数会减少,但负责定义系统边界、验证关键属性和控制Agent行为的人会更重要。

接下来真正值得跟踪的信号,不是又有多少代码由AI生成,而是企业是否开始把权限、信息流、规格版本和生成溯源提升为开发平台的一等对象。如果Agent平台仍停留在粗粒度文件授权、人工确认弹窗和diff审查,Odersky的判断就还没有落地;一旦这些约束进入类型、编译器和Agent runtime,编程语言便完成了一次角色变化:它不再主要描述人要如何计算,而是在规定机器被允许怎样行动。