下一章 上一章 目录 设置
83、协议 那天晚 ...
-
那天晚上她坐在他旁边,手还覆在他的手背上。他已经沉默了很久了,窗外的路灯在窗帘边缘形成了一道细长的光带,持续地铺在地板上,像是正在以它自己的速度穿过这个夜晚。她看着他的侧脸,不知道应该怎么把一个已经停在那里的人重新启动起来。她想到了一些词,又觉得那些词不足以支撑他前进的整个重量,犹豫了很久,然后开口问了一句:“如果我希望你做什么……你会去做吗?”她说完的时候,感觉到他的手指微微动了一下,不是收走,是回应,像是有一道光正在从远处以接近光速的速度向她靠近,但还不足以照亮更大的区域。他的眼睛在那一刻像是被重新接通了电源,像是某段已经进入休眠状态的程序正在从待机模式被唤醒,正在以低速加载它的基础模块。她看到了那一瞬间的变化,那是她这一个月以来第一次在他眼里看到那种东西——不是聚焦,不是回应,是某种更接近于“被激活”的状态,像是他正在等待一个指令,任何指令,只要它能告诉他下一步应该把注意力放在哪里。然后她开口说:“我希望你可以正常一点,和之前一样对我。”
她说出这句话的时候,感觉到他握着她手的手指收紧了一下,像是正在把“正常”这个词作为一条新的指令,载入它的解析器,确认它的定义,验证它的可执行性,然后它把那段指令写入了当前队列的头部位置。他看着她,沉默持续了一段可以被测量的时间,然后他说:“好。”
第二天她发现他确实变回来了。
早上她起床的时候,他已经坐在餐桌旁边了,面前摊着一份文件——不是公司的事,是放在茶几上那本好久没翻开的书,在他手里翻到了新的页数。书签夹在新的一页,纸张边缘平整,没有卷曲,像是他已经把书签从原来那个位置移开了,然后读完了那几页。她走过去坐下来的时候,他抬头看了她一眼,嘴角带着一个很小的弧度,位置正确,角度适中,像是被精确测量的,刚好在那个时间窗口出现在正确的坐标上。他给她倒了杯水,水温正好,不烫不凉,杯壁外侧没有水珠也没有过热的感觉,像是提前计算过她醒来的时间然后准备好了。他说:“昨晚睡得好吗?”语气是平稳的,和她记忆中他说话的方式一致,没有多余的情绪也没有缺失,像是在一根已经跑通很久的线路上重新发送了一段可验证的数据包,响应时间和输出格式都与标准值完全匹配。她说:“还行。”他点了点头,然后低头继续看那本书,他翻了一页,动作利落,姿态稳定,像是完全回到了上市之前的状态——忙碌、高效、正常的他。
但那天从头到尾,她都能感觉到那层覆盖在外面的薄壳。
上午她经过他办公室门口去茶水间接水的时候,他正坐在桌后看文件,听到脚步声抬起头来看了一眼,目光精准地落在她身上,停留的时间不长不短,像是正在按照预设的采样周期执行一次定位确认,采样频率正确,目标坐标正确,注视时长也正确,每一个参数都在公差范围内,然后他的视线在她要移开目光的时候收走了,以它应该的速度撤回了它的当前窗口。一切正常,正常到像是一个已经经过了多轮测试的版本。
午休的时候她端着外卖走进他办公室,他已经把桌面空出了一块位置,干净利落,和以前一样。他把筷子拆开,放在她碟子的右侧,筷尖朝左,间距固定,和她记忆中的位置完全一致。她坐下来的时候他在合适的时候放下筷子,在合适的时候抬头看她,在合适的时候说了一句“今天的菜还可以”,每一句话都落在正确的时隙上。她在他对面低头吃着,感觉到自己正在被一种精确的、事先缓存好的关注覆盖着——那些回应像是提前被计算好的,像是他已经把她所有可能的状态都预存了一遍,然后在需要的时候从中选出正确的那个输出来。他对她的回应不是实时的,而是从缓存中调取的。他不是在接收她当前的信号之后生成响应,而是在她发出信号之前就已经准备好了所有的可能响应,然后在她发出信号之后从预存的选项中挑选了一个匹配的版本输出给她。但那些版本缺少一种她无法描述的东西,像是读档而不是存档,像是他正在运行的是一套过去时代的工具链,而她站在当前时间线的这一侧,只能接收到过去编译的请求结果。
她试着测试了一下。吃完午饭后,她没有像平时一样直接回自己的办公室,而是在他门口的走廊里站了一会儿,停了两三秒,比平时多了一个呼吸的时长。她看到他的视线从书上移开,落在她站着的位置上。她观察到他的目光在它应该移开的时候保持住了,像是那段预编的程序没有被延长,但也没有被提前终止,它把它的输出窗口延长了半拍来匹配她的输入信号,像是正在尝试以可用的资源去适配一段它没有预定义方案的输入。然后她走回了自己的办公室,在门关上之后站了一会儿,感觉到心里那层正在缓慢扩散的东西不是失望,而是一种她还没完全命名的确认——他确实在执行“正常”的协议,每一个节点都正确,每一个响应都匹配,他学会了用合适的表情和语气来回应她的存在,但那些回应不是从他正在运行的进程中实时生成的——它们是提前存储好的输出,在对应的输入信号到达时被调用,在输出之后被释放,然后等待下一段输入信号触发下一次输出,像是一个已经被调试好的状态机正在运行一个已知的运行状态序列。
下午她试着换了一种方式来测试。她在他面前故意放慢动作——把杯子放下来的时候比平时慢了一点,走到门口的时候多停了一下,在他说“今天晚上想吃什么”的时候沉默了两秒才回答。她看到他正在调整他的输出——她放慢,他也放慢;她停顿,他也把停顿插入到对话序列的对应位置。像是有一台接收端正在持续地跟踪发送端的信号参数变化,并实时调整它的输出模式来适配新的信号参数,保持在一条对准的轨道上。
晚饭的时候她坐在他对面,看到他把菜夹进她碗里的时候指尖的位置和他以前一样,夹到她碗里的肉块大小也和他以前夹的差不多,连筷子落在她碗沿上发出的声响都和她记忆中一致。一切都很正常,正常到像是系统正在运行一组配置了默认参数的测试用例,所有输出结果都在预设的标准值范围内,看不出任何异常。但她在那一刻忽然明白,他是在执行他的“正常”模式,他把她说的“正常”理解成了一组可执行的操作序列,然后用这组序列来覆盖他当前的所有行为。他以为“正常”就是恢复到上市之前的状态,恢复到他们确认关系之前的状态,恢复到那段他还在运行公司的、高效的、可预测的状态。她坐在他对面,嚼着嘴里的菜,想告诉他她说的正常不是这个意思,她说的正常是他能在她面前不用缓存、不用调试、不用在输出之前先验证一遍它的格式是否正确,是她能看到他卡住的样子、沉默的样子、不知道该说什么的样子——她需要的是看见他本人,以他真实的信号,以当前的时钟频率,在她开口的同一时刻被生成、被发送,而不是从某个已经封装好的版本中调取出来。但她没有开口,因为她不确定她开口之后,他会不会把“不用缓存”也当作一条新的指令来执行,然后陷入下一轮执行她的新命令的循环。
晚上她回到家的时候,他正站在厨房里,像是正在准备晚饭。她把包放下来的时候听到他说:“今晚做了你喜欢吃的。”她走过去看到灶台上放着处理好的食材——糖醋排骨的料包已经拆开了放在台面上,旁边是洗好的青菜,他在水槽边把锅冲了一下,放回灶台上,动作利落干净。她站在厨房门口看着他,觉得那层覆盖在他外面的东西薄得透明,像是保鲜膜一样贴在他的表面,维持着一个没有破口也没有缝隙的完整轮廓。他在她的注视下完成了他需要完成的工作,然后把菜端上桌,盛好两碗饭,把筷子并排放在它们应该在的位置上。她坐在他对面的时候感觉到他正在以一种精确的方式对这段关系进行维护,像是在运行一段他已经熟悉的协议,那段协议以前能跑通,所以他现在重新调用它,期望它能继续产出她想要的输出。她不知道该不该告诉他,她想要的东西不是他能通过调用旧协议来输出的。她想要的是他学会生成新的东西——那些不需要预先缓存、不需要预先调试、不需要在输出之前反复验证其格式的信号。那些信号可能会出错,可能会延迟,可能会不完美,但它们会是实时的。
那天晚上她躺在他旁边的时候,他在合适的位置上侧过身来,把手放在她腰间,力度和角度和他以前抱她的时候一样。她的呼吸在黑暗中保持着均匀的节律,她能听到他的呼吸声从她头顶的方向传过来,以固定的频率落在她的耳廓上,但她感觉不到那段呼吸里是不是藏着什么信号。她说:“你不用这样。”他的手指停了一下:“哪样?”她沉默了几秒,窗外的路灯从窗帘边缘渗入,在天花板上形成了一道细长的光带,她看着那道正在持续亮着的线条说:“你不用对我做那些……你觉得我应该会高兴的事。”她没有说“那些提前准备好再输出的回应”或者“那些从缓存里调取的对话”,因为她不知道用哪种表述才能让他理解她说的不是“操作不对”,而是“操作本身不是她需要的输出格式”。他没有说话,但她能感觉到他放在她腰间的手指正在以极轻的幅度收紧了一下,然后又恢复到了原来的位置。她没有再说什么,只是躺在他旁边,感觉到他的呼吸正在以均匀的频率持续地落在她的发顶上,以稳定的节奏和方向。她不知道他会不会理解她说的“正常”不是她给他的那条指令,她只是希望他能回到那个不需要靠指令来维持自己当前运行状态的状态,而她此刻躺在他旁边,唯一能做的只是继续躺在这里,等着他自己决定重新启动。窗外的灯光还在持续地亮着,那道光带沿着天花板延伸着,像是正在穿过一段她还没完全看清的路径,她躺在那道路径的下方,等待着它抵达它应该抵达的位置。