六十年前的上古编程语言教程登上GitHub榜首
GitHub的趋势榜单中,都会标记项目所属语言。习惯了榜首被C、java、Python霸屏的人们,今天突然看到了一个不认识的语言教程霸占榜首,一天内星标超过了200。
经过查证,这是一个有着60年历史的古老编程语言——COBOL,最早是以葛丽丝·霍普开发的FLOW-MATIC语言为范本开发。
六十年前的编程语言是什么概念呢?那一年计算机刚好迈入集成电路时代,仙童公司向美国专利局申请专利“半导体集成电路”,5年后,鼠标才出现,又过了5年,Unix操作系统和C语言才出现。
经过几十年多年的不断修改、丰富完善和标准化,COBOL已发展为多种版本的庞大语言,在财会工作、统计报表、计划编制、情报检索、人事管理等数据管理及商业数据处理领域,都有着广泛的应用。
然而由于编程语言的迭代,我们现在已经很少能看到使用COBOL进行编程了,那么又是什么让这个“上古”编程语言重出江湖,并登上GitHub榜首呢?
这一切要从一只蝙蝠说起。
疫情之下,COBOL写的失业救济申请系统不堪重负
随着疫情逐渐在美国大肆蔓延,3月14日,美国总统特朗普正式宣布美国进入全国紧急状态,与此相伴的,是自美国大萧条以来从未有过的失业率,几乎每个行业都在裁员,不少企业因客户流失被迫倒闭,尽管不少公司仍对外开放,但销售额也大幅下降。
根据最新数据显示,3月份制造业生产创下1946年以来的最低水平,新房建设下降幅度是近40年来最大的一次。
也正是因为疫情之下经济的不景气,最近几周,申请失业救济的人数激增。截至4月4日的一周内,有660万被解雇或停业的人提交了福利申请,这些申请使三周申请失业救济的总人数超过1600万,相当于美国劳动力的十分之一。
这些申请已经淹没了康涅狄格州、佛罗里达州和其他地方的计算机系统,其中不少州的主机系统是基于COBOL建立起来的,而在过去几年甚至几十年的时间里,这些系统都没有更新过。
4月4日,新泽西州州长Phil Murphy在新闻发布会上明确阐述了这一点,“会有很多事后调查,其中一个就是我们是怎么熬过来的,这也是我们需要COBOL程序员的原因”。不过,在发布会上,州长错误地把“COBOL”说成了“Cobalt”,这也反映出Cobol这门语言的确有些年头了。
新泽西并非个例,佛罗里达州的失业救济申请系统也已经不堪重负,该州甚至正在恢复使用纸质申请,马萨诸塞州部署了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。
由于COBOL出现的时间太早了,1963年美国国家标准学会对其进行了标准化之后ANSI标准还是很少被遵循,因此,COBOL程序只是部分可移植的,因此随着使用的场景越来越少,熟悉COBOL的程序员也越来越少,在2019年IEEE Spectrum的顶级编程语言名单中,COBOL排名第44位。
当然了,作为一个横穿60年光辉岁月的“上古语言”来说,多少有一些传奇故事。
比如在经典科幻电影《终结者》中,反噬人类、毁天灭地的天网系统中出现的代码便是一串COBOL程序。
但是该段程序的原作者Swirsky表示,这只是一个累加计算的代码,摘自他1984年5月发表在杂志的一篇文章中,他还找到了当年的杂志原文,但是网友们还是不依不饶,“指责”他:“就是你创造了天网!”
COBOL人才储备告急 退休程序员焕发第二春
尽管“天网”系统都是用COBOL编写的,但是日渐式微的COBOL语言还是面临重大的人才储备问题,美国急招COBOL程序员来维护国家失业救济计算机系统,也是因为维护人员实在是不够用。
然而问题正在得到解决,一大批已经退休的程序员表示愿意提供帮助,经过了“年少轻狂”和“中年危机”的老程序员们,又迎来了第二春。
据招聘委员会的一位发言人称,自今年1月以来,提到“COBOL”的招聘广告增加了6.47% 。
还有一些专门招募程序员的公司也开始了扩招。COBOL Cowboys是一家位于盖恩斯维尔的公司是一家职业介绍所,在过去的三年里,公司的程序员数据库中掌握COBOL和其他更现代的语言的程序员从50个增加到了350个,他们的平均年龄在45岁到60岁之间。
该公司首席运营官艾琳·欣肖(Eileen Hinshaw)表示: “我们有一位年纪比较大的程序员,他曾与格蕾丝·霍珀(Grace Hopper)共事过,我敢说她已经80多岁了。”
欣肖表示,COBOL Cowboys在看到墨菲州长的新闻发布会后联系了新泽西州,目前正在就支援COBOL程序员问题“与该州进行沟通”。
除了私营的职业介绍所之外,还有一些公益组织,比如U.S. Digital Response(美国数字反应组织),由一群公共利益技术专家组成的,其中包括一些在奥巴马政府中担任技术职务的人员,这个组织为需要帮助的联邦和州政府机构以及希望提供帮助的具有数字技能的志愿者进行牵桥搭线。
美国数字响应组织的联合创始人之一、前美国首席技术官的Cori Zarek表示,已经有3500多人加入了该组织的志愿者队伍。
目前来看,退休的老程序员们对于参加这样的项目还是非常积极的,Zarek表示:“我们已经看到许多经验丰富的老手在积极报名,太不可思议了。”
果然程序员在面对需求的时候,是控制不住自己的双手的。