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

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

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程序员在哪里呢?

文章来源:码农翻身

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值