GitHub的趋势榜单中,都会标记项目所属语言。习惯了榜首被C、java、Python霸屏的文摘菌,今天突然看到了一个不认识的语言教程霸占榜首,一天内星标超过了200!
经过查证,这是一个有着60年历史的古老编程语言——COBOL,最早是以葛丽丝·霍普开发的FLOW-MATIC语言为范本开发。
六十年前的编程语言是什么概念呢?那一年计算机刚好迈入集成电路时代,仙童公司向美国专利局申请专利“半导体集成电路”,5年后,鼠标才出现,又过了5年,Unix操作系统和C语言才出现。
经过几十年多年的不断修改、丰富完善和标准化,COBOL已发展为多种版本的庞大语言,在财会工作、统计报表、计划编制、情报检索、人事管理等数据管理及商业数据处理领域,都有着广泛的应用。
然而由于编程语言的迭代,我们现在已经很少能看到使用COBOL进行编程了,那么又是什么让这个“上古”编程语言重出江湖,并登上GitHub榜首呢?
这一切要从一只蝙蝠说起。
疫情之下,COBOL写的失业救济申请系统不堪重负
随着疫情逐渐在美国大肆蔓延,本月14日,美国总统特朗普正式宣布美国进入全国紧急状态,与此相伴的,是自美国大萧条以来从未有过的失业率,几乎每个行业都在裁员,不少企业因客户流失被迫倒闭,尽管不少公司仍对外开放,但销售额也大幅下降。
根据最新数据显示,3月份制造业生产创下1946年以来的最低水平,新房建设下降幅度是近40年来最大的一次。
也正是因为疫情之下经济的不景气,最近几周,申请失业救济的人数激增。截至4月4日的一周内,有660万被解雇或停业的人提交了福利申请,这些申请使三周申请失业救济的总人数超过1600万,相当于美国劳动力的十分之一。
这些申请已经淹没了康涅狄格州、佛罗里达州和其他地方的计算机系统,其中不少州的主机系统是基于COBOL建立起来的,而在过去几年甚至几十年的时间里,这些系统都没有更新过。
4月4日,新泽西州州长Phil Murphy在新闻发布会上明确阐述了这一点,“会有很多事后调查,其中一个就是我们是怎么熬过来的,这也是我们需要COBOL程序员的原因”。不过,在发布会上,州长错误地把“COBOL”说成了“Cobalt”,这也反映出Coblo这门语言的确有些年头了。
新泽西并非个例,佛罗里达州的失业救济申请系统也已经不堪重负,该州甚至正在恢复使用纸质申请,马萨诸塞州部署了500多名新雇员进行远程协调工作,以处理数量不断增长的申请,这如此庞大的申请量早已使得失业体系超负荷运转。
康涅狄格州劳工部搁置了更新失业救济系统的工作,以处理大量失业者的申请。州政府官员表示,在过去三周,部门处理的申请数量已经超过了正常情况下18个月的处理量,目前还有6周的申请书有待处理。
康涅狄格州劳工部正在重新招募退休人员,并利用其他部门的IT人员来升级该州已有40年历史的COBOL系统,这个系统不是完全自动化的,需要在过程中的多个点上进行人工操作。
该部门的通讯主管Nancy Steffens说:“我只知道,现在返聘的退休人员都是懂COBOL的程序员。”
COBOL——“一个老古董,一个好东西”
1959年,在格蕾丝 · 霍珀(Grace Hopper)和COBOL的六人组共同努力下COBOL问世,之后就一直被政府和金融机构广泛使用,意思因为它能够稳定地处理大量的处理数据,更重要的是现在要替换COBOL需要花费大量的时间和金钱。
COBOL是一种面向数据处理的、面向文件、面向过程(POL)的高级编程语言,是一种功能很强而又极为冗长的语言。
IEEE曾在一篇文章中把COBOL语言称作“一个老古董,一个好东西”。
当时出现之后,由于具有循环处理周期的环境(例如打印工资支票)以及数据操纵量相当大的环境,COBOL被广泛用于商业数据处理领域,对各种类型的数据进行 收集、存储、传送、分类、排序、计算及打印报表、输出图像是它的强项。
根据2016年美国美国政府责任署的一份报告,除了州政府,多个联邦机构仍在使用它。据路透社报道,95%的ATM刷卡系统、80%的面对面交易和43%的银行系统都是依托于COBOL。