#非常時期的內容理性#
(天下網商記者 黃天然 王安憶)有點經驗的相親女都知道,程式設計師是吃青春飯的。
美國矽谷也流行著這樣的傳說,「如果你在一家大公司工作超過10年,那麼你的技術將會落後六個時代。」
因為計算機技術迭代太快,程式設計師超過四十歲,一旦失業似乎下一站就只能是做Uber司機。
然而,美國疫情導致的失業潮,正讓各州在瘋搶一些懂得COBOL語言的退休程式設計師,新澤西州州長菲爾·墨菲發出緊急招聘,開出時薪55美元至85美元的價格。
這是因為,各州的政務系統幾乎都是用古老的COBOL語言搭建,根本扛不住上網申請申領失業救濟金的巨大人流。
過去兩周,新澤西州政府已經堆積了超過36.2萬份申請,其中一半尚未支付,使用了40多年的失業系統隨時需要維護,而目前新澤西州招募到的程式設計師,最小年齡都在60歲以上。
支撐全球95%ATM交易的語言
上世紀50年代,微型計算機還沒有發明,當時的程式語言只有機器和彙編語言,人們需要一種更簡單的語言來為那些笨重的大型機編程,COBOL應運而生。
1959年5月,格蕾絲·赫柏(Grace Hopper),就是那位在美國海軍辦公室記錄下第一個「BUG」,並最終成為美國第一位女性海軍將軍的女程式設計師,和41名計算機用戶和製造商在五角大樓成立了數據系統語言會議(CODASYL)臨時委員會。
COBOL是英文Common Business-Oriented Language的縮寫,意指面向商業的通用語言,可用於統計報表、財務會計、計劃編制、作業調度、情報檢索和人事管理等方面的數據處理。
同年9月,COBOL確定基本語法,並於1960年12月開始在兩家不同供應商的計算機上運行。此後的20年,COBOL成為商業語言的首選。
隨著PC時代到來,各種程式語言逐次興起,但COBOL並未退出歷史舞臺。
2017年,路透社調查發現,全球目前仍有2200億行COBOL代碼,佔據活躍代碼的80%,大約95%的ATM交易通過COBOL程序。
Micro Focus是一家專門負責維護COBOL代碼的公司,其全球產品營銷總監德裡克·布裡頓在去年說,「任何時候,你聯繫政府部門,轉帳或查看帳戶,支付貸款、買保險、運輸包裹、訂購一束鮮花或機票,甚至股票交易等等,都是在與COBOL互動。」
在美國,使用COBOL最多的是金融機構,包括銀行、保險、金融管理和股票交易相關機構,其次才是政府服務部門。
懂COBOL的程式設計師越老越值錢
從上世紀90年代開始,美國多個行業專家建議更換基於COBOL的系統,否則系統維護將變得越來越難。
2016年,一份「聯邦機構需要更新老化系統」的報告中也提到,美國退役軍人事務部還在使用COBOL程式語言的管理系統,「政府部門管理系統應該使用更現代化,可便於維護的程式語言。」
確實,在程式語言排行榜上,COBOL早就沒影了,比它年輕30多歲的Java和C語言為爭榜首成天鬧得不可開交。
而且,雖然COBOL誕生之初是以「簡單」為目的,但這個簡單是相對的——COBOL經典語錄中有一條,「1000行代碼實現一個小需求」……
對於那些學著Java、C語言長大的程式設計師來說,COBOL過於艱澀難懂,有人將學習COBOL的經歷形容為「就像吞下了帶刺的立方體狀藥丸」。
從20世紀80年代末開始,許多大學不再將COBOL納入計算機科學課程。
因此,至今精通COBOL語言的程式設計師,年紀大都在50歲以上,甚至他們的字典裡沒有退休。
COBOL Cowboys公司創始人比爾·欣肖,75歲還要出門幫美國金融企業修復系統。
有32個孫輩和重孫輩的比爾,早就想關掉公司享受天倫之樂,但架不住以前的客戶總找上門。COBOL Cowboys的大多數員工,早就到了退休年齡,老頭子們嘴裡的「年輕人」,其實也都過了五十歲。
還有一位60多歲的COBOL程式設計師,曾在2012年遭到解僱,被年輕程式設計師頂替了崗位,但只過了兩年,原僱主又找回來求他繼續返崗工作。
還有一位70多歲的COBOL程式設計師,都已經用上了吸氧器,每天早上仍要搭乘政府派來的警車,前往辦公室工作。
過於古老的特性,賦予COBOL語言「彈性、安全」的優點,近年來從未遭遇黑客入侵。
這恰恰符合金融機構和政府「求穩」的需求。
就在去年,美國馬裡蘭州的巴爾的摩、還有佛羅裡達州兩座城市的政府系統就遭到黑客的攻擊勒索,為了贖回被黑客鎖死的市政系統,佛羅裡達州政府向黑客支付了兩筆總額超過100萬美金的比特幣贖金。
既然早年用COBOL寫好的系統能用,而且還足夠安全,就讓其繼續跑著,各地政府都抱著得過且過的態度,直到突然遭遇這次失業潮的衝擊。
失業人群擠垮美國古董系統
哪怕美國經濟最發達的紐約州,服務政府的計算機系統也是用COBOL語言編程,政府官員也承認,這些設備就像是「大型計算機鼎盛時代的電子古董」。
去年,紐約州才與印度孟買的塔塔諮詢服務公司(Tata Consultancy Service)籤訂了一份5600萬美元的長期合同,打算徹底翻新陳舊的政府系統。可惜的是,疫情到得比新的系統更早。
3月,45萬紐約市民試圖登錄勞工部網站申請失業救濟,系統不堪重負出現故障,勞工部的熱線電話也被打爆。
紐約州州長科莫承認救濟發放出了問題,因為許多市民連續幾天都可能打不通熱線電話。「我對此感到很抱歉,這肯定會讓人感到惱火。」
更讓人惱火的是,紐約州政府網站還彈出一條消息,要求救濟申領人使用一種早已絕版的瀏覽器——網景領航者(Netscape Navigator),才能進入正常申領流程。
IE都快沒人用了,政府指定的版本竟然還是它的祖先。
紐約皇后區的網約車司機穆罕默德,耗費足足4天才打聽到申領救濟的流程,而且政府要他將自己的工資單傳真到政府辦公處。
冒著感染新冠病毒的風險,穆罕默德跑遍街頭巷尾,最終在一家商場找到了傳真機,他立即發送了申請資料。但直到4月4日,他還在家中等待消息,沒人告訴他能領到多少救濟金,以及何時才能到帳。
系統老化引發的問題,正在美國各州輪番上演。
4月2日,佛羅裡達州經濟發展部主任對該州的失業網站出現故障做出公開道歉。州政府已開通了紙質申請渠道,可將資料郵寄到政府辦公室,然後由第三方服務商錄入到系統中。
康乃狄克州勞工部發言人南希·史蒂芬斯也表示,目前政府積壓的工作,可能需要5個星期才能完成,跟新澤西一樣,他們也在高薪尋找COBOL程式設計師幫助修復系統。
目前,美國正面臨著一波失業高峰,申請失業救濟人數已經達到660萬人,美國國會承諾給失業者每周600美元的補貼金。然而政府系統不給力導致補助發放遙遙無期,疫情下的失業焦慮無法得到快速緩解。
翻新成本高到美國政府無法承受
隨著程式設計師逐漸老去,COBOL語言已成為美國政府和金融系統難以解決的痼疾。
2018年,美國信息技術和創新基金會調查了全美400多個政府網站,發現幾乎所有網站都未達到基本的技術標準:頁面加載速度、移動端兼容性、安全性、高訪問量處理能力,均不及業界標準。
「政府和金融,依舊是COBOL程式語言的大客戶,目前你很難在聯邦政府中找到一個沒有用它編寫程序的機構。」Micro Focus的COBOL產品銷售總監艾瑞說。
據統計,COBOL編寫的應用程式支持著美國80%銀行以上的日常交易、管理著醫療體系中6000萬名患者、每天搬運7.2萬個貨櫃、處理85%的港口業務……
COBOL語言加上2008年出品的 IBM z10大型機伺服器,不僅用來跟蹤海關執法人員人事聘用和退伍軍人的撫恤金發放,甚至還支撐著美國國土安全部的邊境執法業務和美國社會保障局的退休金計算業務。
美國大量政府服務和金融系統,都運行在這一古老的基礎架構上,這些機構本身就傾向於固守標準化的陳規,畢竟更換語言和系統可能讓關鍵數據面臨風險。
只是經年累月下來,過渡到新設備需要耗費的費用和時間成本變得越來越高。
據路透社在2017年報導,澳大利亞聯邦銀行曾在2012年更換其核心COBOL平臺,結果花了5年時間,耗資7.5億澳元。而澳大利亞另一個政府機構,為將系統語言從COBOL過渡到Java,花了4年時間依然沒有解決。
可想而知,要讓美國政府徹底翻新這一套系統,需要花費多少的時間和代價。
很難想像,這就是那個擁有全球最頂尖計算機技術的超級大國。