← 最新论文
💻 computer science

Jas: AI-Paired Engineering as a Revival of N-Version Programming

本文通过一项案例研究表明,在精确的可执行规范锚定以及通过并行 N 版本实现进行验证的情况下,AI 配对工程使单名开发者能够在约 120 小时内开发出五个不同的软件移植版本,从而有效地复兴了 20 世纪 80 年代成本高昂的 N 版本编程方法论。

原作者: Jason Hickey

发布于 2026-06-09
📖 1 分钟阅读☕ 轻松阅读

原作者: Jason Hickey

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你想构建五个不同版本的复杂、高端绘图应用(类似于微型 Adobe Illustrator)。在过去,这就像雇佣五位不同的建筑大师,每人都说着不同的语言,来设计同一栋房子。这会耗费数年时间并花费巨资。

Jason Hickey,一位独立开发者,做了一些不同的尝试。他在短短七周内(仅利用晚间时间),就构建了这款应用的五个工作版本(分别基于 Rust、Swift、OCaml、Python 和 Web 浏览器)。他没有雇佣团队,而是将 AI 作为他的合作伙伴。

以下是他实现这一目标的简单解释:

1. “主蓝图”(可执行规范)

通常,当你为不同平台构建软件时,你必须为每个平台从头开始编写应用的规则。如果你想修改颜色选择器的工作方式,你必须在五个不同的代码库中进行更新。

Hickey 反其道而行之。他编写了一个单一的“主蓝图”(一份由名为 YAML 的语言编写的 23,000 行文档)。

  • 类比: 把这份蓝图想象成不是一份静态的 PDF,而是一个活的食谱。它不只是说“做一个红色的按钮”;它会说:“这里是这个按钮的外观、它如何响应点击,以及点击后会发生什么。”
  • 神奇之处: 这份蓝图是“可执行的”。计算机读取这一个食谱,就能自动构建出所有五个应用的图形用户界面。如果 Hickey 想更改一条规则,他只需在一个地方进行修改,所有五个应用都会随之更新。

2. “五头龙”(N 版本编程)

在 20 世纪 80 年代,工程师们尝试了一种称为“N 版本编程”的方法。其核心思想是:“如果我们独立构建了五个不同版本的系统,且它们都达成了一致,那么结果必然是正确的。如果它们产生了分歧,我们就知道出了问题。”

  • 问题所在: 这种方法成本太高了。雇佣五个不同的团队来编写五个不同版本的代码是一种浪费。
  • AI 的转折: Hickey 利用 AI 复兴了这个想法。因为 AI 可以承担编写不同语言代码的繁重工作,所以他作为一个人的精力足以构建五个版本
  • 安全网: 这五个版本就像一个五人陪审团。如果“Rust”版本的应用让颜色变红,但“Python”版本却让颜色变蓝,系统会立即发出警报。它们会对彼此进行“差异测试”。如果它们产生分歧,说明主蓝图描述得不够清晰,或者其中一个版本出了错。

3. “逃生舱”

主蓝图涵盖了大约 90% 的工作量。但有时,特定的计算平台(如 iPhone 或 Web 浏览器)需要一些通用的蓝图无法描述的特殊技巧。

  • 类比: 想象蓝图是一份标准的房屋设计图。但“Rust”号房屋需要一个特殊的加固地下室,因为那里的地面是岩石。蓝图处理了所有人的墙壁和屋顶,但“Rust”团队必须建造他们自己的特殊地下室。
  • Hickey 将其称为**“逃生舱”**。这是每个特定平台所需的少量定制代码,而其余部分则是共享的。

4. 流程是如何运作的(循环)

Hickey 并不只是输入代码然后祈祷。他使用了一个特定的循环:

  1. 设计: 他用纯英语编写计划。
  2. AI 评审: 他要求 AI 寻找计划中的漏洞(“缺少了什么?哪里很混乱?”)。
  3. 更新蓝图: 根据 AI 的建议更新主蓝图。
  4. 构建与测试: AI 生成所有五个应用的的代码。
  5. “人工视觉”检查: 这是最慢的部分。Hickey 会手动并排观察所有五个应用。如果其中一个看起来很奇怪,他就知道需要修复蓝图。

结果

  • 时间: 约 120 小时的晚间工作(约 7 周)。
  • 产出: 五个共享核心逻辑的完整功能应用。
  • 成本: 取代了“多个开发者年”的成本,仅需一个人和几个月的时间。

局限性(注意事项)

论文诚实地说明了它并非做到的事情:

  • 它不是最终成品: 这些应用缺少专业工具中的一些高级功能(如复杂的 3D 网格或专业打印功能)。它是一个“实质性的子集”,而非完美的克隆。
  • 它依赖于 AI: 如果 AI 产生困惑或“幻觉”(编造虚假代码),系统会通过五个版本的差异来捕捉它。但如果 AI 在处理特定任务时表现不佳,整个过程都会变慢。
  • 它需要人类: AI 负责打字,但必须由人类来检查结果、修复逻辑,并管理项目的“记忆”,以免 AI 忘记昨天所做的决定。

核心启示

这篇论文认为,AI 改变了软件工程的经济学。
此前,为了确保质量而构建多个软件版本是非常昂贵的。现在,随着 AI 处理重复性的编码工作,单个开发者可以构建一个由五个应用组成的“陪审团”来相互校验工作。它将一种因成本原因在 20 世纪 80 年代被放弃的方法,转化为了今天个人开发者可以使用的实用工具。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →