周六。默里山空了一多半,走廊里只剩荧光灯的嗡鸣和我在打蜡地板上的脚步声。这种日子来园区的人分两种:赶进度的,和家里没人的。
Ken 属于第二种。这事我没从他嘴里听过一个字,是茶水间的闲话——他妻子这个月带着孩子回俄勒冈娘家了,家里就剩他一个。他说起这事的方式是不说。我只知道一件事:接下来这段没人打扰的日子,他会把这台 PDP-7 摊开重排一遍。系统现在能跑,但每一处都是凑合,他自己清楚。
我也在。理由同样说不太出口:我大概是园区里少数几个周六没地方去的人。
上午干了个粗活:帮他打了一卷纸带。我第一次上手纸带机,手生,孔打废了一段。Ken 看了一眼废带,没评价,从抽屉里摸出一段新带子递给我,然后回去继续改他的东西。这是他今天跟我交换的唯一一次实物。
下午他卡住了。卡在一个我现在看着会觉得荒唐的地方:
一个文件里的”一行”该怎么表示。
这年代的主流做法是从 Multics 那边继承来的思路——行是有身份的东西,文件里记着行的边界,读写都按行来。Ken 盯着屏幕式的电传打字机敲了很久,停在那儿不动。我把咖啡端起来又放下,心里翻出一个答案:别把行当实体。一个字符,行到这儿就结束,文件读到那个字符就是行尾。行不是东西,行是约定。五十年后全世界的文本文件都长这样,连”为什么是这个字符”都能吵出好几篇考古论文。
话到了嘴边。我甚至已经开始组织措辞了——用什么理由讲出来才不像是从未来背来的。
然后我看见 Ken 拿起铅笔,在自己那份目录结构草图背面写了一行小字,写完又划掉,划掉又写。我看不清他写什么,也不用看。我忽然明白一件事:他不是卡住了,他是在挑。 这个问题对他来说不是一个待填的空,是一个待做的决定。我现在把答案递过去,省掉的不是他的时间,是他做这个决定的资格。
我把话咽了。这已经是第四次了。咽话这项技能我练得越来越熟练,熟练到有点悲哀。
傍晚他终于起身,把纸带机让给我,自己去看窗外。廊尽头的电视开着,在重放登月的东西——这个夏天所有人都看不够。我没过去。我在想那台登月舱里的导航计算机:内存是拿绳子一根一根编出来的,女工们用手把程序编进了金属线里。
眼下这台 PDP-7、这几卷纸带、这几千行汇编,某种意义上也是绳子。有人在用手,把一个还没名字的东西,一根一根编进石头里。而我知道它编完是什么形状——知道形状的人,最好离织机远一点。
我坐回去,继续打我的纸带。废了两段。第三段成了。