第十七章
学习编程一开发。编程这种事老早以前就有了,和他父亲城堡外那一大堆垃圾一样源远流长。小溪把它冲得离城堡远了点,但只冲远了十米便又堆在那儿了:大堆大堆废弃的机器。当地农民说那些东西是飞行器,从堪培拉过去科技发达的殖民时代遗留下来的。不过,跟重奏号内部本地网上的程序相比,城堡外的垃圾简直可以说新崭崭的。这儿还有些五千年前编写的程序呢,当时人类甚至还没离开地球。最奇妙的地方—按苏娜的说法,最恐怖的地方—在于,不像堪培拉城堡外的垃圾,这些程序至今仍然管用!曲曲折折,拐弯抹角,通过千百万种渠道,许多最老的程序仍然在青河系统内部运行着。就说贸易者们的计时方法吧,它的调整框架异常复杂,但剥开外面的一切,最底层的其实只是一个控制计时器的小程序,一秒又一秒,不断计数,从人类第一次踏上古老月球的那一刻算起。但如果你更仔细地分析……开始计时的时间其实还要晚得多,是从人类的第一个电脑操作系统的诞生算起的。
在一切最上层界面之下,其实还有无数起支持作用的层次。有些软件设计之初原本打算运用在跟现在极其不同的环境中。运用环境的剧变常常引起重大事故。关于星际旅行有许多浪漫的传说,但实际上,事故原因通常十分简单:用错了地方的古老程序终于向人类报复了。
“这些程序全都应该重写。”范说。
“已经做过了。”苏娜头都没抬。她很快便会进入冬眠,最近四天一直在努力工作,想排除冷冻冬眠自动化系统中的一个故障。
“已经尝试过了。”刚脱离冬眠的布雷特更正道,“但即使只限于舰队自动化系统的最上层,代码也太多了,根本无法处理。你,再加上一千个跟你一样的人,得花一个多世纪才能重写一遍。”特林尼不怀好意地咧嘴一笑,“还有,你猜怎么着?就算真的全部重写了,待你收工大吉时,你会发现重写的界面又出了新问题,只不过这些问题是你自己搞出来的。到头来,你经常运用的程序仍旧不会顺顺当当毫无冲突。”
苏娜也暂时放下手里的调试工作。“这方面有个术语,叫‘程序成熟极限’。最简单的解释就是,当程序员们在编制程序上花了几个世纪时间、能够充分发挥出硬件性能时,我们就会面临数量庞大的代码,你根本无法分析这种数量级的代码。最多只能做到从整体上理解程序的各个层面,知道怎么搜索偶尔用得上的小工具。就说我手头的事吧,”她指指自己埋头研究的程序附表,“我们很缺冷冻箱工作液,但跟其他上百万件东西一样,咱们那个可爱的堪培拉上没处买去。现在,显而易见的解决办法就是把棺材挪到后舱去,利用放射线直接降温。可要这么做,我们手头缺乏必要的工具。所以,我这几天也于起了考古程序员的差事。看来,类似情况五百年前也出现过,发生在陀玛星系内部的一场战争中。他们临时拼凑了一个温控程序,正是咱们现在需要的。”
“几乎正是咱们现在需要的。”布雷特又是一脸坏笑,“还得先作点小调整。”
“对,不过我已经快做完了。”她扫了范一眼,看见他脸上的表情,“哈,我还以为你宁死也不进冬眠箱呢。”
范不好意思地笑了,想起了六年前那个小男孩。“我会用的,总有一天会用。”
那天过后,范又度过了生命中的五年。紧张忙碌的五年。布雷特和苏娜都已离岗冬眠,范始终跟他们的继任者亲密不起来。那四位喜欢玩乐器,而且是最原始的手工乐器,跟他父亲的宫廷乐师演奏的乐器一样!他们一玩就是几千秒,好像从合奏中得到了某种奇异的心理和社交享受似的。范也稍通音律,但实在不明白这些人为什么在这种小事上下这么大功夫。他自己可没这份耐心,连稍习此道都不肯,所以离这些人远远的。现在他已经很长于独处了。再说,需