一场疫情,炸出了退休的COBOL程序员
COBOL編程語言,估計大多數程序員從沒聽說過,我這樣的編程老司機,也是只聞其名,從未一睹芳容。出門問了問度娘,答案如下:
COBOL語言,是一種面向過程的高級程序設計語言,主要用于數據處理,是目前國際上應用最廣泛的一種高級語言。COBOL是英文Common Business-Oriented Language的縮寫,原意是面向商業的通用語言。它采用 300多個英語單詞作為保留字,以一種接近于英語書面語言的形式來描述數據特性和數據處理過程,因而便于理解和學習。COBOL語言是專門為企業管理而設計的高級語言,可用于統計報表、財務會計、計劃編制、作業調度、情報檢索和人事管理等方面。
為什么突然談到COBOL語言呢?今天看到一篇文章,新澤西州州長菲爾·墨菲在每天的冠狀病毒簡報中,做出了不尋常的公開呼吁:該州正在尋找懂得COBOL的程序員志愿者。
這又是什么情況?原來由于冠狀病毒在美國爆發后,美國迎來了失業潮,大量的美國人申請失業救濟。而該州的失業救濟金系統就是采用COBOL語言編寫的,令人難以置信的是,該系統已經有40多年的歷史。四十多年了,該系統還在運轉,也不知道是幸運還是不幸。有一點可以確定的是,四十多年前的程序員可沒預計到有這么大的訪問量,自然需要有人維護才行。
現在的問題是,當年懂COBOL語言的程序員都已經退休了,而COBOL語言作為一種面向商業的通用語言,比C語言歷史還悠久,但其生命力卻遠遜于C語言。新生代程序員沒人去學習COBOL語言,而老一代程序員漸漸老去,COBOL語言如同眾多的其它程序設計語言一樣,即將消失在歷史的長河中。
新澤西州還不是唯一依賴COBOL的州。康涅狄格州州長上周表示,康涅狄格州處理失業的計算機系統也正在運行,這導致長達數周的處理延誤。康涅狄格州和其他四個州正在共同努力,招募可以更新該州軟件的退休COBOL程序員。
在計算機發展日新月異的時代,我們理所當然的認為新技術會不停淘汰老技術,以至于作為程序員,時刻有一種壓力,總怕自己被時代淘汰。但我們有時又高估了技術更新的速度。舉個簡單的例子,相對論、量子力學的提出有一百多年了,現代人有多少懂?計算機從發明伊始就采用了馮.諾伊曼體系,至今仍然沒有突破。RSA非對稱密碼算法從上個世紀七十年代公布,至今仍然在安全領域發揮著重要的作用。被認為淘汰的COBOL語言,其實并未退出歷史舞臺。
2017年,路透社調查發現,全球目前仍有2200億行COBOL代碼,占據活躍代碼的80%,大約95%的ATM交易通過COBOL程序。
為什么這些系統不早進行更新換代呢?其實美國政府責任辦公室(GAO)已多次警告在關鍵系統中使用遺留編程語言。GAO在2019年發布了一份報告,匯總了10個急需大修的聯邦計算機系統。例如,教育部用于處理聯邦學生資助申請的系統于1973年實施。該系統需要18個承包商來維護,由于該系統是用COBOL編寫的,因此需要專門的硬件,并且很難與較新的軟件語言集成。
這涉及到軟件系統的一個設計原則,就是如果一個系統能夠正常工作,就不要去動它。很多剛進入編程行業的新手,經常會抱怨其維護的一堆垃圾代碼。問題是就算是垃圾代碼,只要能工作,沒有哪個老板會放心你去修改,誰知道你修改之后會引爆什么雷呢?而且即使讓新手去做一遍,大概率產出的依然是垃圾。這也是為什么從上世紀90年代開始,美國多個行業專家建議更換基于COBOL的系統,否則系統維護將變得越來越難,但這些系統依然頑強存活著的原因。
由于COBOL程序員的匱乏,導致人們對像COBOL Cowboys這樣的初創公司越來越有興趣,這些公司由年長、經驗豐富的程序員組成。COBOL Cowboys的大多數員工,早就到了退休年齡,老頭子們嘴里的“年輕人”,其實也都過了五十歲。
一位60多歲的COBOL程序員,曾在2012年遭到解雇,被年輕程序員頂替了崗位,但只過了兩年,原雇主又找回來求他繼續返崗工作。
還有一位70多歲的COBOL程序員,都已經用上了吸氧器,每天早上仍要搭乘政府派來的警車,前往辦公室工作。
為什么中國沒有出現這種情況?那是因為中國的計算機信息化比美國晚得多,COBOL是大型機時代的產物,而計算機在中國蓬勃發展,已經是微機時代和互聯網時代了。這有時也是后發國家的一項優勢,沒有過多的歷史包袱,可以盡可能的采用最先進的技術。
其實中國也開始慢慢有一些歷史包袱了,比如我們公司使用的內部辦公系統,只支持IE瀏覽器,但這套系統公司一直在使用,各方面都契合公司的流程,而這套系統也已經無人維護。切換新的系統,成本又太高,歷史數據、用戶習慣、流程等等,都難以解決,就這樣一直拖著。中國也有大量的網站仍然使用Flash,只支持IE瀏覽器等等問題。
也許,等我們這代程序員退休的時候,也會被獵頭爭搶,去修復幾十年前的系統呢!
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的一场疫情,炸出了退休的COBOL程序员的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最近面试一些厂的面经整理(阿里,腾讯,字
- 下一篇: 手误【删库】 == 跑路,不存在的 ——