新智元報(bào)道
編輯:David
【新智元導(dǎo)讀】COBOL語言已經(jīng)誕生超過60年了,今天全球依然存在8000億行代碼正在運(yùn)行,為何它的生命力如此強(qiáng)大,遲遲不「退休」?
有數(shù)據(jù)表明,一種被越來越少的開發(fā)人員掌握的,已有 60 年歷史的編程語言支持的應(yīng)用程序比以前想象的要多得多。
這門語言名叫COBOL。
根據(jù) IT 現(xiàn)代化公司 Micro Focus 的一份報(bào)告,目前全球每天使用的 COBOL 代碼超過 8000 億行,大約是預(yù)期的三倍。
更重要的是,幾乎一半的受訪開發(fā)人員實(shí)際上預(yù)計(jì),其組織中的 COBOL 數(shù)量將在未來 12 個(gè)月內(nèi)增加,而類似比例的人表示,他們預(yù)計(jì) COBOL 應(yīng)用程序至少還能再存在十年。
新冠帶來的「COBOL 難題」
圍繞 COBOL 語言的一種典型說法是,熟悉該語言的開發(fā)人員數(shù)量的減少,可能會(huì)導(dǎo)致嚴(yán)重的問題,因?yàn)樗谡豌y行等部門提供了各種各樣的任務(wù)關(guān)鍵型應(yīng)用程序。
例如,在新冠大流行初期,這門古老的編程語言就一度登上了媒體的頭條。據(jù)CNN 報(bào)道,面對(duì)疫情,美國各州政府都表示 COBOL 程序員出現(xiàn)了嚴(yán)重短缺。
新澤西州州長(zhǎng)菲爾·墨菲(Phil Murphy)呼吁志愿者掌握如何使用這門已有數(shù)十年歷史的計(jì)算機(jī)編程語言,因?yàn)樵撝莸脑S多系統(tǒng)仍在較舊的大型機(jī)上運(yùn)行,底層支持正是COBOL。
該州有 36.2萬名居民申請(qǐng)失業(yè),已有 40 年歷史的大型機(jī)一度因缺乏合格的運(yùn)維人員而不堪重負(fù)。
目前,在美國國土安全部、退伍軍人事務(wù)部的系統(tǒng)都在使用COBOL,它可以自動(dòng)為員工、計(jì)時(shí)員、工資單和主管提供時(shí)間和考勤;可以蹤退伍軍人提出的福利、資格和死亡日期索賠請(qǐng)求;
國土安全部的系統(tǒng)負(fù)責(zé)跟蹤當(dāng)前和以前的招聘計(jì)劃,并對(duì)招聘職位和個(gè)人的相關(guān)信息進(jìn)行維護(hù)。
2019 年,64% 的大型機(jī)驅(qū)動(dòng)組織計(jì)劃在平臺(tái)上運(yùn)行一半以上的關(guān)鍵任務(wù),比 2018 年的 57% 有所增加。
路透社2017年的一份報(bào)告顯示,今天仍有 2200 億行 COBOL 代碼正在使用, 43% 的銀行系統(tǒng)和 95% 的ATM刷卡設(shè)備仍然依賴于這門古老的計(jì)算機(jī)編程語言。
而在COBOL開發(fā)人員的平均年齡上,大部分程序員位于45-55歲年齡段,可以說是幾乎是「大爺級(jí)」了。
60多歲的COBOL,是如何誕生的?
COBOL(Common Business-Orientated Language)語言誕生于上世紀(jì)50年代,是最早的高階編程語言、以及是世界上最早實(shí)施標(biāo)準(zhǔn)化的計(jì)算機(jī)語言之一,屬于編譯語言的一種。
計(jì)算機(jī)科學(xué)家Grace Hopper 正在指導(dǎo)一個(gè)開發(fā)早期 COBOL 應(yīng)用程序的團(tuán)隊(duì)
COBOL專為特定目的而設(shè)計(jì),最初是作為美國國防部協(xié)助數(shù)據(jù)處理計(jì)劃的一部分而創(chuàng)建的,后來被計(jì)算機(jī)制造商推動(dòng),促進(jìn)了它的廣泛采用。從那時(shí)起,它的可讀性、簡(jiǎn)單性和可重復(fù)性使其成為編程人員不可或缺的一部分。
與英語一樣,COBOL 也有一定程度的普遍性。實(shí)際上我們每天都在使用 COBOL,無論我們是否知道,它都會(huì)繼續(xù)影響我們的生活。銀行、保險(xiǎn)、物流、零售、政府部門,可以說幾乎任何時(shí)候,我們都在與 COBOL 應(yīng)用程序打交道。
像英語一樣,COBOL也在不斷迭代更新,以滿足新需求,支持新技術(shù),今天它仍然支持從老式批處理任務(wù),到新式移動(dòng)應(yīng)用程序的后臺(tái)等所有內(nèi)容。
許多大企業(yè)仍然使用流利的 COBOL,該語言擅長(zhǎng)在大型機(jī)上執(zhí)行大規(guī)模的批處理和事務(wù)處理操作。路透社指出,銀行業(yè)是對(duì)COBOL最青睞的行業(yè)之一,這對(duì)金融業(yè)的重要性不言而喻,COBOL 系統(tǒng)在金融業(yè)處理的日常業(yè)務(wù)量估計(jì)達(dá) 3 萬億美元。
此外,存款賬戶、卡網(wǎng)絡(luò)、ATM、抵押服務(wù)、貸款分類記賬等服務(wù)背后都有COBOL的身影。
目前,盡管 COBOL 在新一代開發(fā)人員中已基本過時(shí),但許多企業(yè)并不打算放棄該語言。
市場(chǎng)調(diào)查機(jī)構(gòu)MicroFocus認(rèn)為,大多數(shù)依賴 COBOL 的公司 (64%) 更傾向于對(duì)其應(yīng)用程序進(jìn)行現(xiàn)代化改造,而不是用其他語言重寫和替換。
同時(shí),92% 的受訪者表示,COBOL 繼續(xù)對(duì)其業(yè)務(wù)具有戰(zhàn)略上的重要性。
古老的編程語言,為何今天還在用?
有人在Quora上提問:為什么用了50-60年的古老編程語言,今天還在繼續(xù)廣泛使用?
一位自稱有著25年編程經(jīng)驗(yàn)的老程序員表示,最早期的程序員都是專家級(jí),對(duì)軟硬件系統(tǒng)特性的掌握程度很高。而「一個(gè)軟件的長(zhǎng)期穩(wěn)定性的原因是參與設(shè)計(jì)、開發(fā)、維護(hù)和測(cè)試它的軟件開發(fā)人員的專業(yè)知識(shí)?!?/p>
還有人表示,幾十年過去,對(duì)整個(gè)系統(tǒng)進(jìn)行完全替換和重寫的成本太高。既然舊系統(tǒng)仍舊能用,還不如繼續(xù)維護(hù)。
另外一個(gè)重要原因是,當(dāng)時(shí)的COBOL早期程序和應(yīng)用的編寫者,熟知COBOL系統(tǒng)的專門用途,而大部分廣泛應(yīng)用COBOL的金融、銀行、保險(xiǎn)等系統(tǒng),其軟件功能不需要其他行業(yè)那么高的迭代速度,也缺乏推倒重來的動(dòng)力。
用Micro Focus COBOL 產(chǎn)品營(yíng)銷總監(jiān) Ed Airey的話說,「市場(chǎng)上大量的 COBOL 應(yīng)用程序代碼為組織帶來了巨大的價(jià)值,需要持續(xù)投資,作為更大的現(xiàn)代化戰(zhàn)略的一部分。對(duì)于支持核心業(yè)務(wù)系統(tǒng)的 IT 領(lǐng)導(dǎo)者而言,COBOL 應(yīng)用程序的現(xiàn)代化是實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型的核心?!?/p>
參考資料:
https://www.techradar.com/news/this-ancient-programming-language-is-way-more-common-than-we-all-thought
https://www.quora.com/Why-are-banks-still-using-COBOL-Is-it-because-the-cost-of-switching-is-so-high
https://www.cnbc.com/2020/04/06/new-jersey-seeks-cobol-programmers-to-fix-unemployment-system.html
關(guān)鍵詞: 60多歲的COBOL 50歲的碼農(nóng):今天仍有8000億行代碼!