你每次取钱用的那台 ATM,底层跑的是一种 1959 年的编程语言。
全球 95% 的 ATM 交易、80% 的刷卡消费、每天超过 3 万亿美元的商业流水,都在这种语言写的程序上跑。它叫 COBOL。
1959 年 5 月 28 日,五角大楼。大约四十个人坐在一起开会,有军方的,有计算机厂商的,有大公司的技术代表。他们在一起讨论了一个很实际的问题,当时每家公司的计算机说不同的语言,IBM 上写的程序搬不到 Honeywell 上去,重写一遍太贵。会开了两天,决定造一种通用的商业编程语言。
9 月,语言有了名字。COBOL,Common Business-Oriented Language。Grace Hopper 是推动者之一,她之前做的 FLOW-MATIC 语言直接影响了 COBOL 的设计思路。 (有心的读者可能发现了,发现了 “bug“ 这个名场面的就是这位女士)
COBOL 的代码写出来像英语句子。别的编程语言写 x = x + 1,COBOL 写 ADD 1 TO X。当时的想法是让不懂技术的商业人员也能读懂程序在做什么。
银行最先大规模用起来。
六十年代到七十年代,美国金融机构电子化,记账、转账、对账全靠计算机。COBOL 天生擅长大精度小数运算,银行算利息、保险公司算保费,全用它。IBM 大型机跑 COBOL,一年到头不停。太稳了。
你不碰它就不坏,所以没人动它。没人动它,所以没人需要学它。大学不教了,新的程序员不会写了。会写的人越来越老,开始退休。
到 2026 年,会 COBOL 的程序员平均年龄 55 岁,每年有 10% 退休。业内管这些老手叫「COBOL Cowboys」。
全球有多少行 COBOL 代码还在跑呢?
九十年代 Gartner 估算 2200 亿行。2024 年 Micro Focus 调查了 49 个国家超过一千名从业者,结论是超过 8000 亿行。IBM 2025 年自己的数字是 2500 亿行。具体多少说不准,但量级摆在那。
那重写呗。
说得容易,这些代码是几十年间成百上千个程序员写的,文档残缺,业务逻辑埋在代码里面。一个利率计算的小数点后第四位到底四舍五入还是截断,可能是三十年前某次审计之后改的,改的人早走了,注释没写。你要重写,首先得读懂原来的代码在干什么。读懂它本身就需要会 COBOL 的人。
一家一级银行做一次核心系统迁移,报价 5000 万到 5 亿美元。光美国前六大银行的 COBOL 代码就有 430 亿行。更难的是风险。跑了几十年的交易系统里有大量被实践验证过的边界条件,用新语言重写一遍,没人敢保证每个角落的行为和原来完全一样。对银行来说,一个计算错误就是一起监管事故。
所以大家都不动。
2020 年新冠来了。美国失业率暴涨,各州的失业救济系统被申请量打爆。这些系统跑的就是 COBOL。
2020 年 4 月 4 日,新泽西州长 Phil Murphy 在新闻发布会上说了一段话。「我们的系统有些已经超过四十年了。等这事过去了会有很多复盘,其中一项就是,我们到底是怎么走到还需要 COBOL 程序员这一步的。」
几天后他在另一场发布会上又补了一句。「有人叫我 COBOL 之王。我不太确定这是不是在夸我。不过确实有很多人举手说他们会写 COBOL。」
新泽西不是唯一一个。堪萨斯、康涅狄格,好几个州都遇到了同样的事。四十年前建的系统,平时够用,遇到突发负载就撑不住,能修的人又不够。
后来那场危机过去了。系统打了补丁,加了临时人手,勉强扛过去。
COBOL 还在跑。会维护它的人越来越少。
IBM 也在想办法。他们搞了培训项目,十二年间培训了超过 18 万开发者。他们让 COBOL 和 Java 跑在同一台大型机上,试图让老系统和新技术共存。全球 COBOL 现代化市场 2025 年估值 68 亿美元,预计 2034 年到 162 亿美元。很多公司在做这个生意。
会写 COBOL 的程序员现在年薪均值 12.5 万美元,未来十年需求预计还要涨 15%。一种 67 年前的语言,找不到足够的人来维护,学它的人反而比写 Python 的薪水更高。
咱们中国的银行当然也用过 COBOL。
1987 年,工行和中行上线了 IBM 定制的 SAFE II 核心系统,建行随后跟进。IBM 大型机在中国银行业待了三十年,四大行的核心交易系统全跑在上面,每年光维护费就十几个亿。
后来国内推自主可控,银行是重点行业。国资委 2022 年发文,要求 2027 年之前完成核心系统的国产替代。四大行开始动了。
农行 2017 年启动,花了七年,2024 年把所有主机应用全部关停。新的核心系统跑在分布式架构上,撑着 8 亿客户、18 亿个人账户,日交易峰值 20 亿笔。建行 2019 年启动,2024 年 7 月完成境内外核心系统的分布式下移。工行和中行也各自做了大规模迁移,核心业务入云比例已经很高。
美国的银行说太贵了不敢动,一直在养老系统。咱们花了五到七年,真换了。
热门跟贴