美国急招精通“上古”语言COBOL的程序员:80岁码农“被迫营业”?

发布者:零日情报局
发布于:2020-04-17 16:52

大家好,我是 零日情报局

本文首发于公众号 零日情报局,微信ID:lingriqingbaoju。 


最近,高龄程序员和口罩一样,成为美国政府的稀缺资源。


由于新冠疫情全球大流行,造成美国各地区数百万人员失业。仅在3月15日至4月4日之间,政府相关网站就收到了1680万份失业申请,失业率甚至超过了2008年金融危机时的最高水平。


失业索赔的增加导致美国多地失业登记、社保系统超负荷运转,这些濒临崩盘的老旧系统成为当前最为棘手的社会障碍。




像全国大多数州一样,科罗拉多州的失业人数创历史新高。但是,该州的失业系统建立在COBOL编码语言运行的软件之上。该软件运行了几十年以来,COBOL程序员已经严重老龄化,迫使美国在发生危机时争夺COBOL程序员。


想要克服这个障碍,就必须从其根源入手,美国政府急需COBOL程序员抢救老化系统,说到这问题就来了——




COBOL被称为编码语言中的“上古语言”,到如今几乎没有程序员具备维护旧版COBOL应用程序的技能。



60年上古语言近乎绝迹

COBOL程序员出现年龄断层


1959年之前,当时几乎每个计算机制造商都在使用自己开发的编程语言,导致硬件升级、跨公司间的计算机管理困难重重。


为了解决这个问题,美国国防部联合政企、计算机厂商,以及Grace Hopper在内的计算机程序研究人员启动了著名的数据系统语言会议CODASYL,COBOL由此诞生。




到了1970年,COBOL发展成为第一个被广泛使用的高级编程语言,被大量应用于统计报表、财务会计、情报检索和人事管理等方面。直到20世纪80年代,它仍然是商业语言的首选。


发展至2000年之后,随着苹果、谷歌、亚马逊等企业云数据处理的兴起,COBOL晦涩、复杂的弊端开始显现,与硅谷新兴科技公司运作开始脱轨。新一代的程序员青睐更现代的语言,从20世纪80年代末开始,许多大学不再就已经将COBOL纳入计算机科学课程。


尽管IBM等制造商还在提供与COBOL兼容的系统,COBOL这个古老的语言,仍旧支撑着美国司法部、退伍军人事务部、社保管理局等大量内部机构运作。


但随着时间流逝,COBOL程序员出现了年龄断层,更现代的C、Java、Python等编程语言成为主流,撑起美国政府、银行及商业等业务核心的上古语言濒临绝迹。



80岁码农再就业?

疫情期间COBOL迎来短暂春天


当程序员老龄化日趋严重时,古董语言的弊端就开始凸显了。


4月5日,美国新泽西州州长公开急聘COBOL 程序员,帮助修复已经使用了 40 多年的失业保险系统。新泽西州骤增的失业救济申请,让COBOL架构的“老爷车”系统积压了几十万申请。




不幸的是,这种情况在美国绝非个例。根据The Verge的调查发现,美国至少有12个州,包括阿拉斯加,康涅狄格州,加利福尼亚州,爱荷华州,堪萨斯州和罗德岛州等,都在使用COBOL语言写的失业系统,想必大家面对的问题都是一样的。


面对这种棘手的情况,政府开始面向社会紧急招聘COBOL程序员,各行业纷纷行动起来。


作为 COBOL 背后的创始组织之一,IBM联合Linux基金会的Open Mainframe Project启动了COBOL论坛和免费培训课程。




CobolCowboys、USDigital Response等职业介绍机构和公益机构,也开始发挥“桥梁”作用,为个体程序员与其技能相符合的公共或私营机构项目进行匹配。


但我们看到的是,由于COBOL语言已经逐渐被淘汰,众多身怀绝技的COBOL程序员,多为中老年退休、返聘群体。就拿Cobol Cowboys机构的一位成员来说,曾是COBOL 语言开发者的同事,现在也已有80多岁高龄了。


廉颇老矣,也得上阵杀敌,中老年COBOL码农们亦是如此。


表面上看,受到疫情影响,导致COBOL这个上古语言迎来了第二春。但是,在零日看来,晦涩难懂的编程语言仍在支撑全球多数政企系统,而陈旧的系统又难以支持新时代政企机构运转,才是问题的关键所在。



COBOL成安全危机“替罪羊”

系统迁移更待何时?


科罗拉多州劳工和就业部的发言人说,在疫情流行之前,该州只有一名全职COBOL程序员维护着陈旧的系统,令人惋惜的是,离科罗拉多州迁移新系统仅一两个月之遥。


在科罗拉多州之外,还有许多地区系统亟需更新。美国政府问责局(GAO)曾在报告中提到,十个州政府系统优化迫在眉睫,每年用于维护COBOL语言支撑的陈旧系统就要花费3.37亿美元左右。


直至2017年,COBOL仍然架构了全球约95%的ATM机、43%的银行系统,而在美国,这一比例明显要更高。在这种状态下的政府和企业系统正面临怎样的安全现状?


首先,系统页面加载速度、高访问量处理能力均无法达到标准,系统负荷过大导致业务崩盘。这一点正是大家有目共睹的事实,骤增的失业申请直接拖垮了美国各州的失业保障相关网站。


其次,系统安全性严重不足,直接导致未知的漏洞和各类网络攻击难以防范。当前老化系统掌握着全球金融业的运转命脉,而疫情将这个缺点暴露在大众眼前。这意味着一个可怕的事实,网络攻击者完全可以借此瘫痪这些年久失修的系统。


旧系统的维护成本更高,网络安全风险更大,且工作效率低下难以满足业务预期目标,而一旦系统出现危机,COBOL就是那个“替罪羊”。


希望经此一“疫”,及时迁移系统能够获得足够的重视。



零日反思


《编程之道》一书中曾提到过,“不论多么的微不足道,每种语言都有它自己的目的,每种语言都表达了软件的阴阳两极。每种语言都各得其道。但是尽量不要用COBOL语言。”很难说,不是预料到了今天这种局面。


在众多“廉颇”解决当务之急后,是时候重新考虑各自系统迁移问题了。


零日情报局作品

微信公众号:lingriqingbaoju

如需转载,请后台留言

欢迎分享朋友圈


参考资料:

[1] The Verge《几乎没有人知道的一种编码语言正在阻止失业检查》

[2] 机器之心Pro 《80岁COBOL码农:「扶我起来,这个bug我会修。」》





声明:该文观点仅代表作者本人,转载请注明来自看雪