Ben Weiss
世界上沒有多少企業(yè)是以磁帶或者軟盤為基礎建立起來的,因此缺乏能夠修復這些已經(jīng)有幾十年歷史的技術的專家并不構成問題。但Cobol語言卻打破了這一規(guī)則—華爾街(WallStreet)和美國聯(lián)邦政府每年都需要依靠該語言來處理價值數(shù)萬億美元的交易,而Cobol語言是一種已經(jīng)有64年歷史的編程語言。隨著Cobol語言的不斷老化,這些大型機構已經(jīng)很難找到能夠更新其古老系統(tǒng)的人員。
一旦出現(xiàn)問題,許多公司就會求助于82歲的、綽號為“Cobol牛仔”(CobolCowboy)的比爾·欣肖(BillHinshaw)。欣肖在他位于美國得克薩斯州北部的家庭辦公室工作,在那里他負責管理一個由大約600名年邁的Cobol語言工程師組成的遠程團隊—其中一些人在20世紀六七十年代就開始做程序員。每周,這些牛仔們都會提供應急響應服務,包括在2021年為來自美國艾奧瓦州的一家已經(jīng)有93年歷史的公司SuperiorWeldingSupply提供應急響應服務,這家公司唯一的Cobol語言專家在公司的軟件崩潰前去世了。
各類公司都在努力解決維護陳舊代碼(通常是Cobol代碼)的問題,這些代碼仍然可以運行,但通常文檔不全,難以修改,這是程序員稱之為“意大利面條式代碼”(spaghetticode)普遍問題的一部分。多年來,政府機構、媒體和大型銀行一直在為技術基礎設施的老化敲響警鐘?,F(xiàn)在,IBM和微軟(Microsoft)等科技巨頭認為,它們可能已經(jīng)找到了讓我們擺脫對艾森豪威爾(Eisenhower)時代的技術的依賴的強大工具:生成式人工智能。
“意大利面條式代碼”
當我們把錢從儲蓄賬戶轉到支票賬戶時,我們不會看見Cobol語言,也不會想到它,但它對銀行的日常運營卻至關重要。這些操作還包括把客戶添加到數(shù)據(jù)庫、實現(xiàn)ATM交易和處理工資單。自1973年以來,美國聯(lián)邦政府一直使用同一系統(tǒng)處理學生助學金申請,該系統(tǒng)由大約100萬行Cobol代碼組成。
據(jù)信息技術公司Open-Text稱,目前依舊在使用的Cobol代碼大約有2,200億行到8,000億行。埃森哲(Accenture)的全球銀行業(yè)務主管邁克爾·阿博特(MichaelAbbott)說:“當你深入研究絕大多數(shù)的大型銀行真正的核心銀行體系時,你就會發(fā)現(xiàn),這些銀行都在使用Cobol代碼?!?/p>
實際上,在1959年程序員設計出Cobol語言之后,它就迅速成為了數(shù)據(jù)處理語言,這意味著銀行、保險公司、政府機構和任何其他處理TB級信息的公司都要編寫和維護數(shù)百萬行Cobol代碼。
然而,傳統(tǒng)的Cobol語言在效率和通用性方面都比不上20世紀70年代及之后出現(xiàn)的C語言、Java和Python等新興語言。這些語言的構建方式不同,允許工程師更好地構建和重用以前編寫的代碼。最終,新創(chuàng)企業(yè)和位于硅谷(SiliconValley)的公司開始使用Java或者Python,而不是Cobol語言。
隨著Cobol語言失寵,維護成本也隨之飆升。此外,由于遺留的Cobol代碼往往文檔不全,因此修復和升級需要更長的時間。在快節(jié)奏的經(jīng)濟環(huán)境中(例如,利率變化迫使銀行迅速更新提供給客戶的產(chǎn)品),重大改革可能并不可行。
阿博特稱:“這些企業(yè)和機構可能需要9個月到12個月的時間來解開意大利面條式代碼難題并更新其中的產(chǎn)品,從而推出新產(chǎn)品。在現(xiàn)代架構中,這能夠在幾周內(nèi)完成?!?/p>
與此同時,升級的成本可能高達數(shù)億美元。當澳大利亞聯(lián)邦銀行(CommonwealthBankofAustralia)在2017年完成其核心銀行系統(tǒng)的更換時,整個過程耗時五年,耗資近7.5億美元。而且,如果操作不當,升級可能就會導致災難。2022年,英國金融監(jiān)管機構對英國信托儲蓄銀行(TSB)處以6,000多萬美元的罰款,原因是該銀行未能成功地遷移到新信息技術平臺。此前,數(shù)千名客戶于數(shù)周內(nèi)無法進行在線支付。
代碼助手
最近的一個下午,IBM研究中心(IBMResearch)的首席科學家魯奇爾·普里(RuchirPuri)在公司位于紐約市北部綠樹成蔭的園區(qū)里跳到了一塊白板前。這位留著大胡子、頭戴棒球帽、身穿白色西服襯衫的高管,用兩只馬克筆勾勒出金融機構如何使用watsonx代碼助手將數(shù)百萬行Cobol代碼翻譯成Java。
是的,普里表示,代碼轉譯器或者翻譯器已經(jīng)存在了幾十年,但是這些陳舊的系統(tǒng)把意大利面條式Cobol語言翻譯成意大利面條式Java語言。換句話說,記錄不全、難以理解的傳統(tǒng)語言變成了記錄不全、難以理解的現(xiàn)代語言。
他指出,IBM的解決方案超越了現(xiàn)有的轉譯器。通過生成式人工智能,或者與OpenAI的ChatGPT相同的技術,IBM可以將文檔不全的Cobol代碼轉換為結構化、易于解析的Java代碼。普里稱,IBM的工具能夠把公司代碼庫實現(xiàn)現(xiàn)代化的速度提高10倍。
這將為華爾街和美國政府節(jié)省了數(shù)十億美元。比如,2018年2月,美國空軍(AirForce)完成了負責管理作戰(zhàn)任務的物資和設備的計算系統(tǒng)的現(xiàn)代化改造。根據(jù)2019年的一份報告,這一為期三年的過程,包括把數(shù)百萬行Cobol代碼翻譯成Java代碼,每年為美國政府節(jié)省了2,500萬美元的計算成本。那么,試想一下,如果生成式人工智能將美國空軍的系統(tǒng)實現(xiàn)現(xiàn)代化所需要的三年時間縮短為幾個月,納稅人就可以節(jié)省多少錢。
不出所料,這為IBM帶來了重大商機。普里指出,大公司都爭相使用其翻譯軟件(將Cobol語言翻譯為Java語言)。他說:“大多數(shù)《財富》美國100強的企業(yè)都是我們的客戶,而且所有這些企業(yè)目前都在使用我們的軟件?!?/p>
對于微軟旗下的開發(fā)者軟件平臺GitHub的首席執(zhí)行官托馬斯·多姆克(ThomasDohmke)來說,Cobol語言也是首要考慮因素?!癈obol仍舊在大型機上運行,這是一個比我們想象的要大得多的社會問題。”他最近在X上發(fā)帖說道。多姆克表示,他在過去的一年里聽到的關于Cobol語言的問題比他過去30年聽到的還要多。
就像向IBM尋求幫助一樣,客戶們也在向GitHub尋求幫助,看看它的生成式人工智能助手GitHubCopilot如何幫助他們實現(xiàn)傳統(tǒng)基礎架構的現(xiàn)代化。
Copilot采用與ChatGPT相同的算法,類似于電子郵件的自動補全功能。當程序員鍵入代碼時,Copilot會以GitHub公共項目中所有的編程語言為語料進行訓練,并提出行編輯建議。多姆克補充道,程序員還能夠使用該工具突出顯示Cobol代碼,并要求Copilot解釋這些代碼的實際作用。就像IBM自己的編碼助手一樣,Copilot也可以把Cobol代碼翻譯成Java或者其他編程語言。
他說:“生成式人工智能和Copilot將使我們在維護這些陳舊代碼庫時更加輕松,并最終實現(xiàn)現(xiàn)代化?!?/p>
退休
人工智能炒作已經(jīng)達到了高潮,甚至Cobol牛仔欣肖也在為一家新創(chuàng)企業(yè)的人工智能和Cobol產(chǎn)品提供建議。欣肖在他位于美國得克薩斯州的辦公室門上掛著一頂皮帽,但他并不擔心人工智能會迫使他退休?!霸诹璩咳c,你可能會接到一個電話,說這個程序崩潰了?!毙佬ふf道,“你如何讓人工智能參與其中,從而在一個小時內(nèi)讓它恢復正常運行呢?”
IBM和GitHub的高管們也煞費苦心地表示,人類應該參與代碼翻譯和實現(xiàn)現(xiàn)代化的每一步。兩人都承認,人工智能生成的代碼并不完美,因此應該像人類生成的代碼一樣,經(jīng)過一系列的測試。例如,斯坦福大學(StanfordUniversity)的研究人員發(fā)現(xiàn),不使用OpenAI編碼助手的開發(fā)人員編寫的代碼往往比使用該助手的開發(fā)人員編寫的代碼更加安全。
但是,盡管存在風險,像埃森哲的阿博特這樣的金融行業(yè)從業(yè)者還是希望,像IBM或者GitHub這樣的產(chǎn)品能夠解開經(jīng)常使大銀行陷入困境的意大利面條式代碼難題。他在談到生成式人工智能時說:“我要告訴大家,我認為它大有可為?!?/p>