大家好,我是 零日情報局。
本文首發於公眾號 零日情報局,微信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我會修。」》