世纪末的“悬剑”

1999-03-24 08:38罗银川
知识窗 1999年3期
关键词:存储空间程序员程序

罗银川

1997年4月6日,法国艾菲尔铁塔第2层一个倒计时屏幕开始运作;同一天,英国格林威治天文台的一座特制原子钟也开始为2000年来临而倒数。正当人们热切盼望21世纪尽早到来的时候,计算机专家们则伤透了脑筋,他们正在努力寻求计算机如何进入21世纪的良策,而他们所要攻克的正是2000年问题。

减少存储空间留下的隐患

2000年问题,在英语里称作“Year2000 Problem”或者“Y2K Problem”,其中Y代表年,K代表千,它指的是由于计算机中的日期格式不能有效地表示进入2000年以后的日期而引发的一系列问题。随着2000年的日益临近,2000年问题不仅引起了计算机业界人士的广泛关注,而且也成了街头巷尾的热门话题,那么2000年问题究竟是怎么产生的呢?

原来在80年代以前,计算机是一种非常昂贵的设备。计算机设计人员决定省略表示世纪的2位数字,来减少计算机系统的存储空间。根据英语习惯,省略之后就成了“mm/dd/yy”格式,其中“mm”、“dd”、“yy”分别代表月份、日期、年份。用这种格式来表示2000年以前的日期都是没有问题的。例如,一旦看到“03/12/98”,就知道指的是1998年3月12日。但对于进入2000年以后的日期就会产生混乱了,例如,“0I/01/00”到底是表示2000年的元旦还是表示1900年的元旦呢?也许有人会说,1900年还没有计算机,所以应该是2000年,那么,对于“12/03/56”如何来判断呢?

或许当时很多设计人员已经意识到这个问题,可是今天电脑的发展之迅速、普及之广泛,令他们始料不及,而互联网更是拉近了世界各地的人们之间的距离。减少存储量是当时的首要目标,“nun/dd/yy”格式比起“mm/dd/yyyy”格式可以减少将近20%的存储空间,这可是个不小的诱惑,因此暂时就不去理会这几十年后产生的麻烦了。

潜在的困惑与危机

那么,进入2000年以后,旧的日期格式究竟会产生怎样的影响呢?这里以商业应用中常见的COBOL语言编写的程序为例,在这个程序中,要获得一段时间的长度,是通过将两个“mm/dd/yy”格式的日期进行比较,然后用大的日期减去小的日期,就得到时间段的长度。例如,一个出生于1975年1月1日的年轻人。在1999年1月1日,用COBOL程序得出他的年龄是“01/01/99”-“0I/01/75”=24岁。可到了2000年1月1日.得出的年龄却是“0I/01/75”-“0I/0I/00”:75岁,一年之内竟“长”了51岁!从上面的例子可以看出,尽管今天的计算机已经能战胜国际象棋的世界冠军,能使世界各地的人们交流如在眼前,但它对现实世界的理解却同白痴没什么两样。

或许上面的例子还可以作为荒唐的玩笑而一笑了之,可是在如今的信息社会里,我们整天都在同计算机打交道,而哪件事又能离得开时间?这首当其冲的便是金融业。到了2000年,银行利息、分期付款该怎么计算呢?如果还不能及时地解决这个问题,不仅会给金融行业带来不可估量的经济损失和信誉危机,而且还有可能影响整个世界的经济秩序。除了金融业外,几乎所有的行业,甚至包括核武器引爆的定时程序,都有可能存在着2000年问题。其范围之广、影响之深是人类文明史上从未有过的,而这也正是2000年问题引起轰动的根本原因。

“千年虫”背后的商机

2000年问题看似简单,但要真正解决这一问题却不是那么容易的事。

从技术上来说,解决某种软硬件、某个程序的2000年问题并不太难,难的是2000年问题是一个普遍的、互相关联的全球性问题。要解决这个问题,必须对大量的硬件产品、软件产品和应用程序进行分类、分析、改正和测试,任何一个环节出了问题,都会影响整个工作,甚至导致失败。

至于要彻底解决2000年问题的费用,那将是十分惊人的。据专家估算,世界范围内的花费大约在3000亿~6000亿美元,造成的经济损失大约在16000亿美元。

解决2000年问题的花费如此巨大,对某些计算机公司来说却是一个发展的大好契机。仅以COBOL程序为例,据估计现在运作的该程序共有1800亿行,全世界现有90万COBOL程序员专职维护这些程序。仅在1996年到1998年的三年时间里,用自动修改工具来修改程序,同时不影响现有系统的正常运行和维护,就需要增加20万COBOL程序员。以前该类程序员的收入大约是每小时30美元,而现在已经涨到200美元以上了。并且据有关方面预测,如果再晚些时日,都有可能请不到了。除了人员费用外,还会有一些硬件、软件等其他费用,预计花在修改COBOL程序上的总费用可能在480亿~650亿美元左右,这对许多商家来说,无疑是一个相当好的发展契机。

严正以待迎接挑战

正当世界上许多国家为解决2000年问题而积极行动时,国内的反应却表现出异乎寻常的冷淡。国内的不少单位对2000年问题所抱的冷漠态度实在令人惊诧,他们认为我国的计算机应用历史比较短,环境没有国外的复杂,人员费用也比较低,因此对2000年问题还不急着动手。

其实问题并不那么简单。我国电脑拥有量已跻升世界前lO位,而且正以每两年翻一番的速度增长,其中私人电脑增长更快,但大多使用者对2000年问题却一无所知。从另一方面来看,应用软件中的2000年问题最为复杂,而我国训练有素的软件开发和维护人员非常奇缺,动手晚了,很有可能请都请不到。同时,我们要认识到2000年问题是一个全局问题。国内有识之士提出,应该把2000年问题的解决作为一个国家行为来统筹部署,这是很有道理的。

在我们认识到2000年问题的严重性和紧迫性后,必须对本机构内的硬软产品进行全面清查。而一个单位到底有多少产品,只有自己最清楚。清查之后,必须对淘汰的产品进行更新换代,对可以改正的产品进行改正,这个任务可借助一些其他公司提供的、适合自己情况的改正工具来完成。完成上一步之后,并不是大功告成了,还必须进行严格的测试:日测试、周测试、月测试、季度测试,越到后面的测试越有说服力,但难度也越大。各国金融界都要求在1998年以前解决2000年问题,留出最后一年的目的是用于测试。但令人遗憾的是,截止到目前为止,各国已为此花费了上千亿美元,仍然没有找到一个彻底解决问题的办法。不过,我们丝毫不能悲观,在余下的时间里,只要全世界计算机专家及业内人士进一步加强联系,采取一致的步骤和措施,2000年问题最终是能够被彻底解决的。届时,那把悬在我们头上的“达摩克利斯剑”也就自然会消失无踪了。但能否顺利解决2000年问题,我们将拭目以待。

(责任编辑/钱利群)

猜你喜欢
存储空间程序员程序
2020年程序员依然很吃香
苹果订阅捆绑服务Apple One正式上线
给Windows添加程序快速切换栏
用了就回不去的APP
用好Windows 10保留的存储空间
简化化学平衡移动教学程序探索
程序员之子
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
加班