當前位置:
首頁 > 科技 > 千年蟲回來了,再次讓開發人員頭痛不已

千年蟲回來了,再次讓開發人員頭痛不已

20年前,一些開發人員處理通過千年蟲的辦法就是一直推遲到……現在。

20年前,全世界慶祝新千年伊始時,全球的IT專業人員為千年蟲可能爆發直冒冷汗:人們擔心,如果計算機將2000年1月1日(記為01/01/00)解釋為1900年的第一天,依賴兩位數日期日誌的重要系統會停止運行。

所幸後來沒有重大事件發生,原因是開發人員看到千禧年即將到來、做好了準備。但是20年後,很顯然一些人採用了圖方便的權宜之計,只是將這個問題推遲到了2020年。

一系列事件似乎已證實,Y2020是科技界最近的不受歡迎的餘波。

比如說,一款過時的軟體在新年導致支付選項無法正常使用後,整個紐約的停車計費表拒絕信用卡支付。交通運輸部仍在巡查紐約市,對14000隻停車計費表逐一手動更新,戲稱該問題是「Y2K2X軟體故障」。

2K製作的一款摔跤遊戲(居然取名為WWE 2K20)新年才過幾秒鐘就出現了崩潰;眾多遊戲玩家跑到社交媒體上吐槽,指出將日期改為前一天就可以解決崩潰問題。

雖然官方並未將其歸因於Y2020漏洞,但漢堡地鐵系統的故障在新年軟體更新失敗後阻礙了交通。

那麼,為什麼計算機系統面對20年前的千年蟲突然束手無策?在一些情況下,它可能歸結為一種名為「關鍵年」(pivot year)的技術,許多開發人員早在2000年就採用這種技術來處理千年蟲。

假設你是一家創辦於1920年的機構,可以假設你沒有在此之前的任何信息。因此,在兩位數日期記錄系統中,「20」成為你的關鍵年。這意味著含有「00-20」之間的兩位數年份的數據將被處理成2000年後,而20-99之間的年份將被解釋為指上個世紀。

當然,不是所有的公司和組織都創辦於1920年,但20年前,2020年似乎還遙遠得很,許多開發人員仍選擇20作為關鍵年,想當然地認到現在大多數代碼和遺留系統將被替換。

那時候Greg Sternberg是一名開發人員兼顧問。他為多家金融公司工作,「關鍵年」技術是一種權宜之計,通常用於爭取時間。

他說:「很多時候我被告知,『該程序不可能在2020年還會運行。』而在許多情況下仍會運行,而同樣許多程序駐留的時間比最初預期的要長。」

「做出短期決策可能是當時最快捷的方法,可能這些方法更方便。但是方便通常意味著以後會找你的麻煩。」

這倒不是說大多數組織都選擇了關鍵年這個策略。長期解決千年蟲問題的另一種方法是重寫編程系統的所有組件以及重寫所有資料庫和數據源,以便它們使用四位數的年份。

這花費了時間和大量資金;確切地說,全球共花費了3000億美元至5000億美元。然而,這正是2000年1月1日子夜鐘聲敲響後沒有出現技術系統完全癱瘓的原因,以至於千年蟲常常被稱為是危言聳聽的流言。

Sternberg說:「我們沒有意識到這個問題。一些程序員多年來努力解決這個問題。坦率地說,他們是無名英雄。」

但是對於只是將這個問題推遲了幾十年的那些人來說,問題才剛剛又開始出現。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!


請您繼續閱讀更多來自 雲頭條 的精彩文章:

2019年12月1日等保2.0正式到來
微軟進入 RPA 市場,意味著什麼?