周一。降温。机房那扇窗关上了,屋里多出一股机器烤热的气味——纸带机油混着发热的电子件,稠得像食堂的汤。
上午那桩麻烦是用户自己造的。
专利部门那两位打字员把文件分出了层次:外头一层是部门,往里一人一间,谁的稿子进谁的屋。上礼拜她们还在问”这机器上到底有什么”,这礼拜已经在嫌”全堆在一层太乱”。抱怨升级,老规矩:她们比我们的申请材料先长大一步。
麻烦就出在层次上。Ken 那个命令文件(一个文件装一串命令,敲一个词跑完)现在卡住了——命令里说不清一个东西住在第几层。
你站在自己屋里说”把稿子拿出来”,机器知道你说的是哪份。可这句话要写进一个给别人跑的命令文件里,它指的是谁?”稿子”两个字在机器眼里不是一个东西,是一句没头没尾的话。
Ken 午饭前把这事办了,办得一如既往地朴素:在名字和名字之间夹一个小记号,意思是”往下走一层”。 写出来是一条路线:部门、人、稿子,一级一级走下去。名字从此不只是标签,是一条谁都能照着走的路。
打字员敲了一遍,跑通,转身去问下一个问题。验收这套系统的方式从来不是夸,是立刻提出下一个要求。
我端着搪瓷杯站在旁边,嘴里那句又上来了。
它是关于“站在哪儿”的:一个名字,如果不先说清说话的人站在哪儿,它随时会滑到别的东西上去。要让一个名字走遍整棵树都只指同一件东西,得有一条从顶上往下数的路——不管你在哪层楼哪间屋,念出来都落到同一处。
第三十一句。 咽了。
这次的理由比前三十句都绕。那半句听着只是个写法问题,可它一句话里塞着两件事:位置从哪儿算起,和树顶上那一格归谁管。前一件他们早晚自己撞上;后一件现在连影子都还没有。我把前一件递过去,后一件会跟着溜进来——那不是替他们省一步,是替他们先决定了一件事,而这件事将来要吵很多年。
另外还有半句我自己都没想通的,不往本子上记:名字里塞进了路,这东西从此就搬不了家。怕记岔了。
下午的活是给 Kernighan 看手册。十页了,页码从一编到十,抬头那个方框还空着。他不给框画横线了,改成在框里写了个很小的问号,像是怕被人看见。
傍晚出事。上午那半句,自己找上门了。
一个打字员把自己那套排版活儿写进命令文件,在屋里跑得好好的,端到隔壁屋一敲——机器捞出来的是另一个人的稿子。两间屋,同一个名字,两样东西。她愣在那儿,问了一句:它怎么认错人了。
Ken 过来站了两秒,没解释。这年代还没有”你现在站在哪儿”这个概念可以拿来解释。他把那张命令文件翻到写着名字的那一行,手指在那儿点了一下,回机房去了。
我站在原地想明白了:这不是认错,这是从来没规定过说话的人站在哪儿。机器忠实地执行了一个没人规定过的约定。
McIlroy 路过,瞅了一眼那行名字,把烟掏出来。
“树越长越深,喊一个东西就越费嗓子。”
我问那怎么办。
“要么把名字起短,要么让喊的人先站对地方。”他弹了下烟灰,”两条都不好走,你自己挑。”
抄下来的时候我心里抖了一下。他随口挑的两条路,一条是他们已经走上的,另一条正是我今天咽下去的那句。他两个都看见了。我两个都不能说。
回宿舍路上,报摊在喊号外。不是战争,不是月亮——大都会队,今天下午在谢亚球场赢下第三场,拿了国联冠军。七年前这支队伍头一个赛季输了一百二十场,报纸管他们叫笑话;今天全城在街上喊同一个名字。
名字七年前就起好了。变的只是这个名字底下装着什么。
本子今天两条:
第三十九条:把路写进名字,能让嘴找得到东西,也从此让这个名字搬不了家。
第四十条:一个名字在两间屋里指到两样东西——这时候你才发现,规矩里从来没规定过说话的人站在哪儿。
(今日咽话一句,累计第三十一句。)