跳到文章正文
行业/好文 编辑推荐

AI 想接手 67 岁的 COBOL:迁移准确率 98%,但没人敢按下替换键

报税季,美国国税局的系统还在跑 1959 年诞生的语言。银行的网上服务、信用卡刷卡、ATM 取现…

报税季,美国国税局的系统还在跑 1959 年诞生的语言。银行的网上服务、信用卡刷卡、ATM 取现,背后也有一大块是 COBOL。全世界最关键的一批系统,靠一门比大多数程序员年纪都大的语言撑着。

10 月 19 日,OpenAI 宣布自家最新模型在“把老代码迁移到现代语言”上取得实质性进展,并称这能帮助企业维护和更新老旧系统。听起来像是给遗留系统判了缓刑,但真正做过迁移的人,态度要谨慎得多。

一分钟速览

  • COBOL 诞生于 1959 年,据 IBM 数据,它支撑着 40% 以上的网上银行系统、80% 的线下信用卡交易和 95% 的 ATM 交易。
  • 有粗略估算认为,COBOL 的低效每年给美国 GDP 造成约 1050 亿美元损失。
  • OpenAI 称 GPT-6.1 Sol 在低推理强度下行为保持准确率 87%,提高推理强度后达到 98%,可迁移到 C++、Java、Kotlin、Python、Rust。
  • 同一测试中,GPT-6 Astra 约为 86%,GPT-6 Sol 仅 21%,GPT-5.6 Sol 只有 5%。
  • 专家的冷水:重写代码不等于替换系统,真正的难点是把庞大系统拆成可逐个替换的单元。

为什么 COBOL 一直死不掉

COBOL 全称“面向商业的通用语言”,设计初衷就是处理账目、库存、 payroll 这类业务。它在上世纪六七十年代被大量采用,随后嵌进了银行、保险、航空、税务、社保的骨架里。几十年来,替换它的项目一轮接一轮,成功者寥寥。

原因不神秘。第一,这些系统太重要,停机或算错账的代价远高于维护成本;第二,懂它们的人正在退休、去世,文档常常缺失;第三,遗留系统不是一段代码,而是代码、数据、批处理任务、接口、运维流程和一堆没人敢碰的“历史约定”的集合。

一位研究软件演化的学者提到,他见过最大的单体系统有 2.5 亿行 COBOL,而且“肯定不是世界上最大的”。面对这种体量,把代码翻译成 Java 只是第一步,更难的是确认翻译后的系统行为和原来完全一致。

98% 的准确率意味着什么

OpenAI 的测试方法是“行为保持”:迁移后的代码要通过全部测试,才算成功。GPT-6.1 Sol 在低推理强度下达到 87%,提高推理强度后达到 98%;作为对照,GPT-6 Astra 约为 86%,GPT-6 Sol 为 21%,GPT-5.6 Sol 只有 5%。这组数字说明模型代际之间的差距是断崖式的,也说明“多花推理算力换准确率”在代码迁移任务上确实有效。

但 98% 放在遗留系统上并不是一个可以庆祝的数字。一套每天处理数百万笔交易的系统,2% 的行为偏差意味着什么,不需要多解释。更关键的是,测试本身从哪来——很多老系统根本没有完整的测试用例,所谓“全部测试通过”,可能只是通过了一批不完整的测试。

Anthropic 也在这个方向下注。它在今年 2 月发布了代码现代化方法论,并把 Claude Code 包装成迁移 COBOL 的工具,虽然没有公布迁移性能基准,但“COBOL 现代化的经济账已经变了”这句话,足以让靠维护遗留系统赚钱的 IBM 股价当日下挫。

真正的难点不在翻译

把 COBOL 翻译成 Java,本质上是语言之间的映射,模型擅长这个。难的是系统级的重构:哪些模块可以独立替换,哪些数据必须保持原样,哪些批处理窗口不能动,哪些隐藏依赖只存在于老员工的记忆里。

这也是专家们反复强调的那句话:重写代码不是替换系统。可行的路径通常不是“一次性翻译”,而是先把系统切开——用旁路方式把新服务挂在老系统旁边,逐块迁移流量,保留回滚能力,最后再关掉旧模块。这个过程里,AI 能加速的是理解代码、生成测试、补充文档,而不是替企业做风险决策。

一个正在成形的市场

可以把这件事看成 AI 编程工具的第一个“硬骨头”市场。互联网应用的代码年轻、测试齐全、出错了可以快速回滚;遗留系统相反,代码老、测试缺、出错代价高。谁能在这里证明自己,谁就能拿到金融、政府、航空这些客户的长期合同。

接下来值得观察三件事:OpenAI 和 Anthropic 是否会公布可复现的迁移基准;系统集成商会不会把 AI 迁移做成标准化产品;监管行业是否接受“AI 生成、人工复核”的迁移流程。至于 COBOL 会不会就此退休,答案大概率是否定的——它会继续待在关键系统里,只是维护它的人,身边多了一个不知疲倦的助手。

本文地址:https://www.163264.com/18171