羅銀川
1997年4月6日,法國艾菲爾鐵塔第2層一個倒計時屏幕開始運(yùn)作;同一天,英國格林威治天文臺的一座特制原子鐘也開始為2000年來臨而倒數(shù)。正當(dāng)人們熱切盼望21世紀(jì)盡早到來的時候,計算機(jī)專家們則傷透了腦筋,他們正在努力尋求計算機(jī)如何進(jìn)入21世紀(jì)的良策,而他們所要攻克的正是2000年問題。
減少存儲空間留下的隱患
2000年問題,在英語里稱作“Year2000 Problem”或者“Y2K Problem”,其中Y代表年,K代表千,它指的是由于計算機(jī)中的日期格式不能有效地表示進(jìn)入2000年以后的日期而引發(fā)的一系列問題。隨著2000年的日益臨近,2000年問題不僅引起了計算機(jī)業(yè)界人士的廣泛關(guān)注,而且也成了街頭巷尾的熱門話題,那么2000年問題究竟是怎么產(chǎn)生的呢?
原來在80年代以前,計算機(jī)是一種非常昂貴的設(shè)備。計算機(jī)設(shè)計人員決定省略表示世紀(jì)的2位數(shù)字,來減少計算機(jī)系統(tǒng)的存儲空間。根據(jù)英語習(xí)慣,省略之后就成了“mm/dd/yy”格式,其中“mm”、“dd”、“yy”分別代表月份、日期、年份。用這種格式來表示2000年以前的日期都是沒有問題的。例如,一旦看到“03/12/98”,就知道指的是1998年3月12日。但對于進(jìn)入2000年以后的日期就會產(chǎn)生混亂了,例如,“0I/01/00”到底是表示2000年的元旦還是表示1900年的元旦呢?也許有人會說,1900年還沒有計算機(jī),所以應(yīng)該是2000年,那么,對于“12/03/56”如何來判斷呢?
或許當(dāng)時很多設(shè)計人員已經(jīng)意識到這個問題,可是今天電腦的發(fā)展之迅速、普及之廣泛,令他們始料不及,而互聯(lián)網(wǎng)更是拉近了世界各地的人們之間的距離。減少存儲量是當(dāng)時的首要目標(biāo),“nun/dd/yy”格式比起“mm/dd/yyyy”格式可以減少將近20%的存儲空間,這可是個不小的誘惑,因此暫時就不去理會這幾十年后產(chǎn)生的麻煩了。
潛在的困惑與危機(jī)
那么,進(jìn)入2000年以后,舊的日期格式究竟會產(chǎn)生怎樣的影響呢?這里以商業(yè)應(yīng)用中常見的COBOL語言編寫的程序為例,在這個程序中,要獲得一段時間的長度,是通過將兩個“mm/dd/yy”格式的日期進(jìn)行比較,然后用大的日期減去小的日期,就得到時間段的長度。例如,一個出生于1975年1月1日的年輕人。在1999年1月1日,用COBOL程序得出他的年齡是“01/01/99”-“0I/01/75”=24歲??傻搅?000年1月1日.得出的年齡卻是“0I/01/75”-“0I/0I/00”:75歲,一年之內(nèi)竟“長”了51歲!從上面的例子可以看出,盡管今天的計算機(jī)已經(jīng)能戰(zhàn)勝國際象棋的世界冠軍,能使世界各地的人們交流如在眼前,但它對現(xiàn)實(shí)世界的理解卻同白癡沒什么兩樣。
或許上面的例子還可以作為荒唐的玩笑而一笑了之,可是在如今的信息社會里,我們整天都在同計算機(jī)打交道,而哪件事又能離得開時間?這首當(dāng)其沖的便是金融業(yè)。到了2000年,銀行利息、分期付款該怎么計算呢?如果還不能及時地解決這個問題,不僅會給金融行業(yè)帶來不可估量的經(jīng)濟(jì)損失和信譽(yù)危機(jī),而且還有可能影響整個世界的經(jīng)濟(jì)秩序。除了金融業(yè)外,幾乎所有的行業(yè),甚至包括核武器引爆的定時程序,都有可能存在著2000年問題。其范圍之廣、影響之深是人類文明史上從未有過的,而這也正是2000年問題引起轟動的根本原因。
“千年蟲”背后的商機(jī)
2000年問題看似簡單,但要真正解決這一問題卻不是那么容易的事。
從技術(shù)上來說,解決某種軟硬件、某個程序的2000年問題并不太難,難的是2000年問題是一個普遍的、互相關(guān)聯(lián)的全球性問題。要解決這個問題,必須對大量的硬件產(chǎn)品、軟件產(chǎn)品和應(yīng)用程序進(jìn)行分類、分析、改正和測試,任何一個環(huán)節(jié)出了問題,都會影響整個工作,甚至導(dǎo)致失敗。
至于要徹底解決2000年問題的費(fèi)用,那將是十分驚人的。據(jù)專家估算,世界范圍內(nèi)的花費(fèi)大約在3000億~6000億美元,造成的經(jīng)濟(jì)損失大約在16000億美元。
解決2000年問題的花費(fèi)如此巨大,對某些計算機(jī)公司來說卻是一個發(fā)展的大好契機(jī)。僅以COBOL程序為例,據(jù)估計現(xiàn)在運(yùn)作的該程序共有1800億行,全世界現(xiàn)有90萬COBOL程序員專職維護(hù)這些程序。僅在1996年到1998年的三年時間里,用自動修改工具來修改程序,同時不影響現(xiàn)有系統(tǒng)的正常運(yùn)行和維護(hù),就需要增加20萬COBOL程序員。以前該類程序員的收入大約是每小時30美元,而現(xiàn)在已經(jīng)漲到200美元以上了。并且據(jù)有關(guān)方面預(yù)測,如果再晚些時日,都有可能請不到了。除了人員費(fèi)用外,還會有一些硬件、軟件等其他費(fèi)用,預(yù)計花在修改COBOL程序上的總費(fèi)用可能在480億~650億美元左右,這對許多商家來說,無疑是一個相當(dāng)好的發(fā)展契機(jī)。
嚴(yán)正以待迎接挑戰(zhàn)
正當(dāng)世界上許多國家為解決2000年問題而積極行動時,國內(nèi)的反應(yīng)卻表現(xiàn)出異乎尋常的冷淡。國內(nèi)的不少單位對2000年問題所抱的冷漠態(tài)度實(shí)在令人驚詫,他們認(rèn)為我國的計算機(jī)應(yīng)用歷史比較短,環(huán)境沒有國外的復(fù)雜,人員費(fèi)用也比較低,因此對2000年問題還不急著動手。
其實(shí)問題并不那么簡單。我國電腦擁有量已躋升世界前l(fā)O位,而且正以每兩年翻一番的速度增長,其中私人電腦增長更快,但大多使用者對2000年問題卻一無所知。從另一方面來看,應(yīng)用軟件中的2000年問題最為復(fù)雜,而我國訓(xùn)練有素的軟件開發(fā)和維護(hù)人員非常奇缺,動手晚了,很有可能請都請不到。同時,我們要認(rèn)識到2000年問題是一個全局問題。國內(nèi)有識之士提出,應(yīng)該把2000年問題的解決作為一個國家行為來統(tǒng)籌部署,這是很有道理的。
在我們認(rèn)識到2000年問題的嚴(yán)重性和緊迫性后,必須對本機(jī)構(gòu)內(nèi)的硬軟產(chǎn)品進(jìn)行全面清查。而一個單位到底有多少產(chǎn)品,只有自己最清楚。清查之后,必須對淘汰的產(chǎn)品進(jìn)行更新?lián)Q代,對可以改正的產(chǎn)品進(jìn)行改正,這個任務(wù)可借助一些其他公司提供的、適合自己情況的改正工具來完成。完成上一步之后,并不是大功告成了,還必須進(jìn)行嚴(yán)格的測試:日測試、周測試、月測試、季度測試,越到后面的測試越有說服力,但難度也越大。各國金融界都要求在1998年以前解決2000年問題,留出最后一年的目的是用于測試。但令人遺憾的是,截止到目前為止,各國已為此花費(fèi)了上千億美元,仍然沒有找到一個徹底解決問題的辦法。不過,我們絲毫不能悲觀,在余下的時間里,只要全世界計算機(jī)專家及業(yè)內(nèi)人士進(jìn)一步加強(qiáng)聯(lián)系,采取一致的步驟和措施,2000年問題最終是能夠被徹底解決的。屆時,那把懸在我們頭上的“達(dá)摩克利斯劍”也就自然會消失無蹤了。但能否順利解決2000年問題,我們將拭目以待。
(責(zé)任編輯/錢利群)