我们的世界,运行在无人能懂的“屎山代码”之上!

人工智能
调整和验证?也就是说它并不能保证完全的正确性,最多是一个能提高程序员生产力的工具而已。我放心了。想想也挺神奇的,人类世界运行在60年前的无人知晓的COBOL代码之上!

没有一种编程语言像我这么尴尬。

60多年了,我依然支撑着43%的银行系统,处理着每天3万亿美元的交易!

在我的发源地美国,由于信息系统开发得更早,我更是强势,95%的ATM和80%的银行都在用我。

在这个世界上,我依然有2200亿行代码在运行!

这让C++,Java这些后辈看得目瞪口呆。

没错,我就是COBOL。

先让大家看看我的样子吧,这是个简单的Hello World

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
AUTHOR. Liu Xin.
DATE-WRITTEN. 2022-12-15.
PROCEDURE DIVISION.
    DISPLAY "Hello, world".
END PROGRAM HELLO.

太简单了,我就不解释了。

这段代码稍微复杂一点,则用来计算小时工的工资,如果工作时间超过40小时,工资是1.5倍。

COMPUTE-GROSS-PAY.
    IF HOURS-WORKED > 40 THEN
        MULTIPLY PAY-RATE BY 1.5 GIVING OVERTIME-RATE
        MOVE 40 TO REGULAR-HOURS
        SUBTRACT 40 FROM HOURS-WORKED GIVING OVERTIME-HOURS
        MULTIPLY REGULAR-HOURS BY PAY-RATE GIVING REGULAR-PAY
        MULTIPLY OVERTIME-HOURS BY OVERTIME-RATE
            GIVING OVERTIME-PAY
        ADD REGULAR-PAY TO OVERTIME-PAY GIVING GROSS-PAY
    ELSE
        MULTIPLY HOURS-WORKED BY PAY-RATE GIVING GROSS-PAY
    END-IF

读起来是不是特别像普通的英语?

这就是当年美国国防部要求的,要“最大限度地使用简单英语”,“这样更多的人可以使用它来向计算机描述问题。”

我的语法中keyword有400多个,相比C和Python等语言的几十个,有人说这种语法太拖沓,繁琐,受不了。

但也有人很喜欢,说这是一种自解释、自包含的文档,只需要把代码念出来,就知道什么意思了。

我在处理“格式化数据”方面富有盛名,从文件中读取格式化的数据记录(如姓名、地址、社保号码、电话号码等),进行处理(如计算工资),然后保存到文件中,这是我的拿手好戏,所以我出现在了很多银行,保险、政府等重要的商业应用之中。

但悲催的是,能用我编程的程序员已经退休,在家抱孙子,学校也不教COBOL。

COBOL程序员彻底断档了!

由于代码时代久远,又无人能懂,COBOL代码经常被称为屎山代码。

疫情期间,美国失业补助系统用户量暴增,仅仅新泽西州就有32万新用户注册,系统不堪负荷,急需COBOL程序员维护,但就是找不到人。

各地州长在电视上反复呼吁,对外求援。

为了改变这种窘境,人们想了很多招数。

1. 让退休的COBOL程序员发挥余热。

美国的Bill Hinshaw爷爷已经75岁,60年代开始写代码,精通COBOL编程,几年前本来计划退休,但是客户不断地向他求救,于是他成立了一个公司:COBOL Cowboys (COBOL 牛仔),专门为那些绝望的客户提供帮助。

图片

图片

这家公司有20个兼职员工,公司最年轻的员工是50多岁。

这些有经验的COBOL程序员可以修复系统故障,编写手册,磨合新旧系统,时薪可达100美元。

对企业来讲,成本似乎很高,但是和重写相比,还是九牛一毛。

2. 重写代码

还有些银行,下定决心用别的语言把COBOL系统重写。

2012年,澳大利亚联邦银行在埃森哲和SAP的帮助下,更换了其核心COBOL银行平台。

这项工作最终耗时五年,耗资超过 10 亿澳元(7.499 亿美元),期间也遇到了很多问题,2015年支付系统发生故障,60万笔交易丢失。三个月后又发生了一次重大故障,导致客户无法使用银行卡。

2018年,英国TSB银行从基于COBOL的系统迁移,连续几天无法交易,迁移成本高达3.3亿英镑。

任何一个想把我干掉的高管看到这些数字,恐怕心里都会哆嗦一下吧。

用我写的系统是金融、政府和商业世界24/7 运转的重要支柱,迁移它们相当于在空中把飞机的螺旋桨拆下,安装喷气式发动机,这条路恐怕是走不通啊。

3. 人工智能

看到那些银行吃了瘪,大佬IBM坐不住了。

毕竟,大部分的COBOL代码都运行在他家的大型机之上,给大家找一个出路是IBM不容推脱的责任。

今年,IBM想了一招,利用人工智能自动地把COBOL转换成Java。

这个叫做wastonx的辅助工具可以帮助程序员理解、重构COBOL代码,甚至转换成Java代码。

嗯,有点意思。

图片图片

但我根本不相信,现在的人工智能真的有智能,能完全无误地把我大COBOL代码改成Java。

后来,IBM也承认,这只是个编程助手而已,程序员仍然需要对AI转换的代码进行调整和验证。

调整和验证?也就是说它并不能保证完全的正确性,最多是一个能提高程序员生产力的工具而已。

我放心了。

想想也挺神奇的,人类世界运行在60年前的无人知晓的COBOL代码之上!

随着老一代COBOL程序员的逐渐老去,下一代COBOL程序员在哪里呢?

责任编辑:武晓燕 来源: 码农翻身
相关推荐

2017-09-20 16:29:19

2024-02-21 14:36:39

安全漏洞人工智能

2013-04-19 09:51:21

HadoopOpenStackSavanna

2011-11-28 13:33:41

iOS

2011-08-05 14:16:51

iOS苹果开发者

2011-04-21 16:07:45

笔记本显卡

2015-07-29 11:08:48

IaaS云计算平台混合云

2021-12-06 11:57:48

无人驾驶智能技术

2009-11-05 09:43:54

苹果CEO乔布斯

2014-01-07 13:07:44

YARN计算框架

2009-04-24 20:39:29

捷波Intel多核

2020-03-02 08:33:35

高质量可维护代码

2024-01-29 13:58:56

AI模型

2024-03-20 09:49:39

英伟达黄仁勋语言模型

2009-06-19 21:02:11

2009-04-23 13:24:34

Nehalemintel服务器

2024-04-02 11:38:14

2023-08-25 13:33:00

AI工作

2023-05-12 14:13:23

3D建模OpenAI

2011-08-30 13:10:14

Python
点赞
收藏

51CTO技术栈公众号