退休 COBOL 程序员说:扶我起来~
穆罕默德·赛义夫·伊斯兰(Mohammed Saiful Islam)可算是尝到纽约州失业保险系统陈旧与低效的苦头了。新冠疫情爆发之初,他按照要求前往斯台普斯的一处机构,把工资单传真到奥尔巴尼。
伊斯兰是一名 Lyft 司机,住在皇后区。自从 35 年前从孟加拉国移民到美国以来,这是他第一次申请失业救济。虽然自己不懂什么高科技,但听说需要用传真机发送自己的申请时,他还是被惊到了。
但他还是戴上口罩和手套,步行前往斯台普斯的这个办事机构。在过去三周内,已经有超过 45 万纽约民众申请失业救济但却无功而返——而伊斯兰也不幸沦为其中一员。直到上周末,他仍然在等待着可能永远不会到来的系统回应。
老旧失业保险系统告急
伊斯兰跟其他想要申请失业救济的纽约州居民们发现:陈旧的失业保险系统根本无法支撑起突如其来的访问峰值。这还不包括繁琐的流程:伊斯兰花了四天才弄明白靠谱的申请流程。
早在去年夏天,州政府官员就坦言:纽约州的失业保险系统还停留在上个世纪,相关应用程序存在技术问题。这套系统是啥时候编写的呢?编写于上世纪七十到八十年代,距今有 40 多年了。
今年 3 月,随着成千上万突然失去工作的人开始登录劳工部网站并拨打热线,这套失业保险系统瞬间陷入瘫痪。
由于系统一直无法登陆、热线电话连续几天无人接听,部分福利申请站点甚至开始弹出提示消息,要求用户使用网景浏览器(一款早已灭亡的浏览器)!
纽约州的失业保险系统虽然不灵了,但是他们还真不是没有想过解决办法。该州曾在 2017 年就对老旧失业保险系统进行了公开招标,并于去年与总部位于孟买的塔塔咨询服务公司签下了一份为期五年、价值 5600 万美元的合同。只不过面对这样一个“过时且成本高昂的大型机”系统,州政府没想到改造起来会这么复杂。
纽约州州长安德鲁·科莫(Andrew M. Cuomo)周二承认,该州的失业救济申请程序确实存在问题:“我对此感到抱歉,我们必须尽快拿出解决方案。”
懂 COBOL 的退休程序员成了香饽饽
当然,在应对失业救济申请方面遭遇困境的绝不仅仅纽约一个州。
上周四,佛罗里达州经济机会部门执行主任在该州失业网站发生故障后公开道歉。事实上,审计人员早在去年就曾向州长罗恩·德桑蒂斯(Ron DeSantis)通报过关于该网站的问题。
此外,康涅狄格州劳工部发言人南希·史蒂芬斯(Nancy Steffens)表示,该州积压的申请可能需要五个星期才能处理完成——顺带一提,他们的计算机系统也已经是拥有 40 多年历史的老古董了。
史蒂芬斯还表示:康涅狄格州不得不求助于退休程序员,因为只有他们了解如何使用 COBOL(去年刚刚过完 60 岁生日,是一种几乎已经消亡的计算机语言)进行编程。她解释道:”康涅狄格州及其他四个州已经启动一个对现有系统进行修复的联合项目,但项目至少要在明年才能全面完成。“
无独有偶,在求助懂 COBOL 的程序员方面,这个尴尬还不是孤例。前两天新泽西州州长菲尔·墨菲( Phil Murphy )也在新闻发布会上表示政府急需懂 COBOL 的程序员,帮助修复他们已经使用了 40 多年的失业保险系统。时薪为 55 美元至 85 美元。
COBOL 为什么可能比我们所有人都要长寿?
当很多人听到 COBOL 的时候,第一印象就是:都成化石了吧?事实并非如此。正如Steven J. Vaughan-Nichols 所写,这门去年 10 月迎来自己 60 岁生日的古老编程语言甚至可能“比我们所有人都要长寿”。
阅读这篇文章的大多数人在 1959 年还没有出生,那一年 Mary Hawes 提出了 COBOL (Common Business-Oriented Language,面向商业的通用语言)的概念,Grace Hopper(和其他人一起)随后使其正式化并加以改进。正如 Vaughan-Nichols 所提到的那样,Hawes 的目标是创造“一个类似英语的词汇表,可以在不同的计算机上执行基本的业务任务”,这是一种真正的与供应商无关的语言。
Micro Focus(维护 COBOL 的公司)在与 Vaughan-Nichols 的一次谈话中表示:虽然 COBOL 的年轻时代在 20 世纪 80 年代已经逐渐消失了,但它却支撑着全球 70% 的事务处理操作。
从自动取款机中取钱?你在用 COBOL。支付抵押贷款?也是用 COBOL。打电话给呼叫中心?没错,那也是 COBOL。即使是假期预订,也完全依赖于 COBOL。
一般人可能认为 COBOL 已经废弃了几十年了,但是 2200 亿行 COBOL 却仍然存在于我们生活里的那些大型机中。据软件工程研究中心 Lero 表示,2014 年 COBOL 程序的事务处理数比谷歌搜索高出了 200 倍,绝对使其相形见绌。
而且,COBOL 可不是在大型机上苟延残喘的老糊涂。除了易读之外,这门语言还与它的旁观者保持着联系。如今,COBOL 与 Docker 容器、Java 相结合,可以运行在云、Linux、Windows 上,或是运行在任何地方的任何设备上。它是一种高度可管理的语言,允许程序员专注于编写应用程序,而 COBOL 则负责处理底层操作系统的复杂性。
如今,COBOL 最大的风险是越来越难找到懂它的程序员了,这也是新泽西州州长要在发布会上公开招募退休的 COBOL 程序员的原因。
考虑到替换 COBOL 系统的成本和风险,这种语言可能还有几十年的时间要和我们一起共存。
结束语
因为有关 COBOL 的讨论成为 Reddit 上热议话题,InfoQ 此前还发起过一次“COBOL 还有没有未来了?”的话题讨论。有位网友的留言调侃了一把 COBOL,也让我们感受到了大家对 COBOL 的复杂感情。
让我想起在知乎上看到的冷笑话:一个 Cobol 程序员在解决千年虫问题上挣了大笔的钱,以至于他有足够的资金在他死后将自己的身体冰封起来。未来的某一天,他意外的被复活了。
当问起为什么自己会被解冻,他被人告知:
“现在是 9999 年 – 而你懂 Cobol 语言”
参考链接:
https://www.nytimes.com/2020/04/04/nyregion/coronavirus-ny-unemployment-benefits.html
https://learnworthy.net/could-java-be-the-next-cobol
评论 3 条评论