【為什麼我們要挑選這篇文章】現在工程師大多使用 Python、Java、 C 語言等程式語言,然而新冠肺炎疫情讓 60 年前的程式語言「COBOL」重出江湖,會寫 COBOL 的工程師成為市場的當紅炸子雞,而許多退休的工程師也再度上任,為抗疫貢獻心力。(責任編輯:郭家宏)

GitHub 的趨勢榜單中,都會標記項目所屬語言。習慣了榜首被 C、java、Python 占版的文摘菌(本文作者),突然看到了一個不認識的語言課程霸佔榜首,一天內星標超過了 200!

經過查證,這是一個有著 60 年歷史的古老程式語言:COBOL,最早是以葛麗絲.霍普開發的 FLOW-MATIC 語言為範本開發。

60 年前的程式語言是什麼概念呢?那一年電腦剛好邁入整合電路時代,仙童公司向美國專利局申請專利「半導體整合電路」,5 年後,滑鼠才出現,又過了 5 年,Unix 作業系統和 C 語言才出現。

經過幾十年多年的不斷修改、豐富完善和標準化,COBOL 已發展為多種版本的龐大語言,在財會工作、統計報表、計劃編製、情報檢索、人事管理等數據管理及商業數據處理領域,都有著廣泛的應用。

然而由於程式語言的迭代,我們現在已經很少能看到使用 COBOL 進行編程了,那麼又是什麼讓這個「上古」程式語言重出江湖,並登上 GitHub 榜首呢?

這一切要從一隻蝙蝠說起。

疫情之下,COBOL 寫的失業救濟申請系統不堪重負

隨著疫情逐漸在美國大肆蔓延,本月 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 表示,「我們已經看到許多經驗豐富的老手在積極報名,太不可思議了。」

果然工程師在面對需求的時候,是控制不住自己的雙手的。

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈六十年前的上古编程语言教程登上GitHub榜首,退休老程序员如何焕发第二春?〉。首圖來源:Pickpik CC Licensed

更多關於寫程式的資訊

30 年前的工程師怎麼寫程式?神人開發 8 位元雲端電腦,讓你體驗古早味的 coding 情懷
【工程師隱身術】200 行 TensorFlow.js 程式碼,讓你從視訊會議的畫面中「消失」
用這 6 種方式優化程式碼,讓你的 Python 速度提升 30%!