程越看著萤幕上这个文件名,没有说话。他把手放在她的手上——不是握,是轻轻地覆盖著,像在确认一个不需要确认的事实。
“温以宁。”
“嗯。”
“v1.0有个问题。”
“什么问题?”
“没有写版本更新的条件。”
她转头看他。他的眼睛离她很近,近到她能看到自己的倒影——头发乱了,嘴唇干了,黑眼圈很重,但她在笑。
“你想怎么改?”她问。
“v1.1,增加一条:每天说一次——”
他没有说完。因为温以宁把额头抵在了他的额头上。两个人的额头碰在一起,皮肤贴著皮肤,呼吸交叠著呼吸。她闭上眼睛,感觉到他睫毛扫过她的眉骨——很轻,像两把打开的小扇子。
“这个不算。”她说,“这个不算在v1.1里。v1.1是明天的事。”
“那现在算什么?”
“现在算——”她想了一下,“算运行测试。”
“测试结果呢?”
“收敛。”
她感觉到他笑了。不是嘴角动一下的那种笑,是从胸腔里传出来的、震动透过额头传递给她的笑。很轻,很暖,像一个运行了一万次、每一次都输出同一个结果的程序。
百分之百。
关系定义文档v1.0在实验室的萤幕上挂了整整一个晚上。
温以宁没有关掉那个文件。她关了电脑,但没有关文件。程越走的时候看了一眼萤幕上那个文件名——“我们”——然后什么也没说,只是把她的蜂蜜柠檬粉补了货。三盒整整齐齐码在茶水间的架子上,旁边贴了一张便利贴:“v1.1补充条款物料准备。”
第二天早上温以宁到实验室的时候,看到那三盒蜂蜜柠檬粉,站著看了五秒。
“程越。”
“嗯。”他已经坐在工位上了,面前摆著两杯咖啡。一杯美式在他的右手边,一杯热的蜂蜜柠檬水在她的键盘旁边。杯套上写著“温姐”,字迹横平竖直。和昨天一样,和前天一一样,和这周的每一天一样。
“你昨天晚上几点走的?”
“十一点多。”
“十一点多便利店还开著?”
“二十四小时的。”
“你专门去买的?”
“顺路。”
“酒店在东边,便利店在西边。你怎么顺的路?”
程越的手指在键盘上停了一下。“我路过。”
温以宁没有再问。她坐下来,喝了一口蜂蜜柠檬水。温度刚好。她怀疑他是算好了时间来的——从酒店到实验室开车二十分钟,泡一杯蜂蜜柠檬水需要三分钟,放凉到合适的温度需要七分钟。他大概每天早上七点半出门,七点五十到实验室,八点整把杯子放在她的键盘旁边。
她没有问。她怕他真的有这个行程表。
上午的工作照常进行。程越提交了新一版的优化算法,温以宁把它整合进量子态制备流程里,测试结果比预期好了百分之五。她在注释里写:
某人今天的算法不错
他回:
某人今天的量子态也很稳定
她回:
是系统稳定性提升了,不是我的功劳
他回:
系统稳定性是谁提升的?
她没有回。
中午的时候温以宁去茶水间热饭。打开微波炉,里面已经热好了一份——西兰花炒鸡胸肉,米饭上撒了芝麻。和昨天一样,和前天一一样。她端著便当回到工位,看到自己桌上多了一瓶冰的蜂蜜柠檬水,瓶身上挂著便利店的小票。时间是十一点五十八分。
她看了一眼程越的桌子。他在吃一份外卖,打开的盒子里是辣子鸡和酸豆角。
“你能不能换个口味?”她问。
“习惯了。”
“你的胃会坏掉。”
“坏掉再说。”
温以宁把自己便当里的一半西兰花夹到他外卖盒里。和昨天一样,和前天一一样。程越看著那几朵西兰花,夹起来放进嘴里。
“今天的盐放得比昨天少。”他说。
“我昨天说咸了。”
“所以你今天少放了?”
“我本来就放得不多。”
“你的本来不多是大多数人的偏少。”
“你能不能不要每天重复同一句话?”
“你能不能不要每天给我夹菜?”
温以宁没有回答。她低下头吃饭,耳朵有点热。不是因为生气,是因为她意识到一件事——他说的对。她每天给他夹菜,每天把他的外卖盒里放进她不吃的东西,每天用这种方式告诉他“你应该吃好一点”。她以为这只是习惯。但习惯是重复做同一件事,直到不需要理由。她已经不需要理由了。
下午的工作继续。两点的时候温以宁打开“我们”那个文件,从头读了一遍。四条规则,不到五十个字。她盯著萤幕看了十秒,然后在第一行下面加了一行:
“v1.0 已知问题:未定义关系状态。”
她储存。三分钟后文件刷新,程越加了一行:
“v1.0 已知问题补充:未定义称呼方式。”
她又加了一行:
“v1.0 已知问题补充2:未定义公开范围。”
他又加了一行:
“v1.0 已知问题补充3:未定义版本更新频率。”
她加:
“v1.0 已知问题补充4:未定义——”
程越直接在她没打完的后面接了一句:
“——未定义如何定义。”
温以宁看著这行字,笑了。她关掉文件,打开对话框。
“你觉得v1.0需要修订吗?”
“需要。问题太多了。”
“那你提议v1.1的内容。”
程越的对话框安静了大概两分钟。两分钟里温以宁写了三行代码,删了两行,又写了一行。她的注意力不在代码上,在对话框旁边那个绿色的在线标志上。
然后他发过来一段文字:
“v1.1 修订草案:
1. 关系状态定义:恋爱中。
2. 称呼方式定义:工作时间叫温博士/温总,非工作时间叫以宁。
3. 公开范围定义:实验室内部不公开,外部不隐瞒。
4. 版本更新频率:每周一评估,必要时即时修订。
5. 新增条款:每天说一次我爱你。”
温以宁读完,没有回复。她关掉对话框,继续写代码。
程越的键盘声在旁边响著,节奏和刚才一样——稳定的、不急不慢的、空格键比别的键重一点。但他敲空格键的频率比平时高了。他在紧张。
她忍了十五分钟。十五分钟里她写了七行代码,删了六行,最后一行是一个变量声明,她打了“boolean love =”,然后光标停在这里,不知道该填true还是false。
不是不知道答案,是觉得这个变量命名太蠢了。
她关掉那个文件,打开对话框。
“草案第5条有语法错误。”
“什么错误?”
““每天说一次我爱你”不是条款,是操作指令。条款应该是“双方应每日确认情感状态”。”
程越沉默了大约十秒。
“你说得对。v1.1修订版:
1. 关系状态定义:恋爱中。
2. 称呼方式定义:工作时间叫温博士/温总,非工作时间叫以宁。
3. 公开范围定义:实验室内部不公开,外部不隐瞒。
4. 版本更新频率:每周一评估,必要时即时修订。
5. 新增条款:双方应每日确认情感状态。
6. 补充操作指令:确认方式为“我爱你”。”
温以宁看著这六条,嘴角往上翘了一下。
“第6条是多余的。确认方式不需要写进文档。”
“需要。不然会产生歧义。”
“什么歧义?”
““情感状态”可以解释为喜欢、不喜欢、还行、凑合。必须明确确认的内容。”
她忍了一下,没忍住。“那你觉得应该确认什么内容?”
“我爱你。”
三个字。没有修饰,没有条件,没有“如果你也”的前置假设。就像他写的代码——确定、坦然、不留余地。
温以宁的手指放在键盘上,打了三个字:“我也是。”然后删掉。打了两个字:“收到。”删掉。打了一个字:“嗯。”删掉。
她关掉对话框。
程越的键盘声停了。实验室里很安静,安静到她能听到服务器风扇转速的细微变化——有人在跑大规模计算任务,可能是机房的备用机在做数据校验。
她转头看他。
程越坐在离她一臂的地方,手放在键盘上,没有敲。他的表情很平静,但她看到他耳朵红了——从耳垂一直红到耳尖,在实验室白色的灯光下很明显。
“程越。”
“嗯。”
“v1.1草案我看了。”
“嗯。”
“第1条到第4条没问题。”
“第5条和第6条呢?”
温以宁没有回答。她转回去对著萤幕,打开“我们”那个文件,在v1.0下面加了几行:
“v1.1
修订日期:今日
修订内容:
1. 关系状态更新为恋爱中
2. 称呼方式:工作时间温博士/温总,非工作时间以宁
3. 公开范围:实验室内部不公开,外部不隐瞒
4. 版本更新频率:每周一评估
5. 双方应每日确认情感状态”
她停了一下,看了一眼最后一行。然后在后面加了一个括号:
“(确认方式略)”
储存。
程越的电脑上弹出文件更新通知。他打开,看到那个括号里的“确认方式略”,沉默了三秒。
“为什么略?”
“因为不需要写。”
“需要。”
“不需要。”
“温以宁。”
“程越,”她转头看他,“你能不能不要这么较真?”
“这不是较真。这是文档完整性。”
“这是关系定义文档,不是技术规格书。”
“所有的文档都需要完整性。”
“那你去写你的技术规格书,不要管我的文档——”
她没有说完。因为程越伸手过来,把她的椅子往他的方向转了十五度。力度不大,但很确定。她面对著他,两个人之间的距离从一臂变成了半臂。
“温以宁。”他叫她的全名,声音很低。“我爱你。”
实验室的灯光在他头顶,白色的、稳定的、不会闪烁的光。他的表情很平静,但眼睛里有一种她读得懂的东西——不是试探,不是等待回应,是陈述。就像他说“这个算法效率可以提升百分之十五”的时候一样——确定的、基于计算的、不需要对方同意的陈述。
温以宁看著他,沉默了大概五秒。
五秒里她的大脑处理了很多信息。他的睫毛弧度——和五年前一样。他耳朵的颜色——比五年前红。他说话时候嘴角的动向——没有动,但他说“我爱你”的时候,嘴角比平时紧了一点点,因为他在紧张。
“程越,你知道吗,”她说,“你选了一个最不适合告白的场景。”
“为什么?”
“因为我在工作。”
“你在工作,我也在工作。但这件事和工作没有关系。”
“那你为什么要在工作时间说?”
“因为非工作时间我见不到你。下班之后你就走了,回家,关门,一个人待著。我没有机会说。”
温以宁愣了一下。
他说得对。下班之后她就走了。回家,关门,一个人待著。她从来没有想过他在下班之后做什么——回酒店,叫外卖,对著电脑,等她第二天早上来实验室。他把想说的话攒了一整个晚上,攒到第二天早上,放在她的键盘旁边,放在便利贴上,放在注释里。然后等到一个合适的时机,说出来。
“我没有不让你说。”她说。
“那你刚才说“能不能不要这么较真”。”
“那是因为——”她停了一下,找了一个词,“因为你写在文档里,感觉像在签合同。”
“合同不好吗?”
“合同是约束。”
“关系本来就是约束。”程越看著她,“你选择了一个人,就意味著不选择其他人。这是约束。你每天给他夹菜,每天喝他泡的蜂蜜柠檬水,每天在他的注释下面回复——这些都是约束。你不喜欢约束吗?”
温以宁没有说话。
她喜欢约束。她喜欢每天早上键盘旁边那杯温度刚好的蜂蜜柠檬水。喜欢每天中午把西兰花夹到他外卖盒里的时候他说“今天的盐放得比昨天少”。喜欢每天在注释里和他吵架,每天听他的键盘声在实验室里响,每天关电脑之前看一眼“我们”那个文件有没有被更新。
这些都是约束。约束的意思是你不能没有这些。
“我喜欢。”她说。
程越等著。
“但我还是觉得“确认方式略”比较好。”
“为什么?”
“因为——”她想了想,“因为写出来就没有惊喜了。”
程越看著她,嘴角动了一下。不是笑,是那种“我听懂了但我不同意”的表情。她见过这个表情很多次——在技术讨论的时候,当她说他的方案有问题而他觉得没问题的时候。
“那我换一种方式。”他说。
“什么方式?”
“不定时确认。”
“什么叫不定时?”
“就是不一定什么时候说。可能是工作时间,可能是非工作时间。可能是当面说,可能在注释里说,可能在便利贴上说。不写进文档,不预告,不保证频率。”
温以宁想了想。“这不就是现在的方式吗?”
程越沉默了一下。“对。”
“那你为什么还要写进文档?”
“因为——”他停了一下,“因为我想让你知道,这不是临时起意。这是计划内的、确定的、不会撤回的。”
温以宁看著他的眼睛。他的眼神很认真,不是那种讨好的、退让的认真,是那种“我知道自己在说什么”的认真。和他在谈判桌上说“可以”的时候一样——确定、坦然、不留余地。
她转回去对著萤幕,打开“我们”那个文件,把v1.1的最后一行改了。
“5. 双方应每日确认情感状态(确认方式:不定时,不限形式)”
储存。
程越的电脑上弹出文件更新通知。他打开,看到这行字,没有说话。但他把文件加到了收藏夹里。
下午四点,温以宁去了一趟洗手间。回来的时候发现键盘旁边多了一张便利贴。黄色的,三乘三公分,贴在滑鼠的右侧——她一定会看到的位置。
便利贴上写著:“我爱你。v1.1首次确认。”
字迹横平竖直,和杯套上的一模一样。
她站在工位前面,看著这张便利贴,站了大概十秒。然后她把便利贴揭下来,贴在萤幕的边框上——和那些写著服务器密码、会议室预约电话、院办分机号的便利贴排在一起。大小一样,颜色一样,但内容不一样。
她坐下来,打开对话框。
“v1.1首次确认已收到。”
“确认回执呢?”
“不需要回执。”
“需要。不然无法确认对方已收到确认。”
“我贴在萤幕上了。”
程越转头看了一眼她的萤幕边框。那张黄色的便利贴在白色的萤幕边框上很显眼,和密码、电话、分机号排在一起,像一个不属于这个系统的变量。
他转回去,没有说话。但他敲键盘的力度比平时轻了一点。
晚上七点,实验室的人走得差不多了。温以宁还在写代码,程越也在写。两个人的键盘声在空荡荡的实验室里回响,节奏和任何一个晚上一样——她的快,他的稳;她的轻,他的重。
但今晚多了一个东西。萤幕边框上那张黄色的便利贴,在台灯的光照下微微反光。
“程越。”
“嗯。”
“v1.1还有一个问题。”
“什么问题?”
“版本号。v1.1应该是增量更新,但这次更新的内容太多了。按照语义化版本规范,应该升v2.0。”
程越的手指停在键盘上。
“你说得对。”他想了想,“但v2.0应该是重大重构。这次算重大重构吗?”
“你觉得呢?”
他转头看她。她没有看他,在写代码。但他看到她嘴角往上翘了一下——左边比右边高一毫米。
“算。”他说。
“那就v2.0。”
温以宁打开文件,把v1.1改成v2.0,储存。然后她关掉电脑,收拾东西,站起来。
“明天见。”她说。
“明天见。”
她走到门口,停了一下。没有回头。
“程越。”
“嗯。”
“v2.0的首次确认——”
“嗯。”
“明天早上。”
她走了。走廊里的脚步声很稳,不快不慢,和她的键盘声一样——确定的、从容的、不需要赶时间的。
程越坐在工位上,看著萤幕上那个文件名。他打开文件,看到最后一行:“确认方式:不定时,不限形式。”
他拿出手机,打开和温以宁的对话框。打了三个字,发送。
温以宁的车刚开出停车场,手机响了。她等了一个红灯,拿起来看。
一条讯息:“我爱你。v2.0首次确认(提前版)。”
她看著这条讯息,笑了。不是那种精确的、被校准过的笑。是真正的、从眼睛开始的笑。眼睛弯成两道月牙,左边的嘴角比右边高一毫米。
绿灯亮了。她把车开出去,在下一个红灯的时候回了一条讯息。
“收到。v2.0确认回执。明天早上当面补。”
程越看著这条讯息,把对话框截了个图,存进了一个文件夹。文件夹的名字是一串数字——温以宁的生日。里面已经有了一张照片、三十二篇论文的截图、一个情感分析模型的v1.0版本。现在多了一条讯息。
他关掉手机,关掉电脑,关掉实验室的灯。走廊里很安静,电梯门开了,他走进去。
电梯下降的时候他想到一件事——明天早上他需要早一点到实验室。因为v2.0的首次确认要在八点之前完成,不能占用工作时间。这是文档里没写的,但他觉得应该遵守。
他走出电梯,穿过大厅,推开玻璃门。外面的风停了,空气里有春天的味道——泥土的、草叶的、正在发芽的植物的气味。他站在研究院门口,抬头看八楼的窗户。灯灭了。她走了。
他拿出手机,看了一眼那条讯息的发送时间。十九点四十三分。他在心里记了一下——v2.0首次确认,提前版,十九点四十三分。当面补确认的时间,明天早上七点五十八分。他会在七点五十八分把蜂蜜柠檬水放在她的键盘旁边,杯套上写“温姐”。然后等她走进实验室,坐下,喝第一口的时候,说——
他想了想,觉得还是不要提前设计台词。不定时,不限形式。这是她写的规则,他决定遵守。
程越走向停车场,脚步比平时轻。不是因为高兴,是因为确定。确定一件事的感觉就像写完最后一行代码,按下运行,萤幕上跳出绿色的“PASS”。不需要再改,不需要再调,不需要再优化。就是这个。
确定关系后的第一周,实验室的作息没有任何变化。
程越每天早上七点五十八分到,把蜂蜜柠檬水放在温以宁的键盘旁边。杯套上写著“温姐”,字迹横平竖直。八点整温以宁走进实验室,坐下,喝第一口。温度刚好。她怀疑他每天早上七点半到,花十分钟泡饮料,花十分钟等它凉到刚好的温度,然后在她来之前的最后两分钟把杯子放好。她没有求证,因为求证意味著承认她在计算他的时间表。
上午的工作照常进行。程越提交代码,温以宁测试,两人在注释里吵架。她写“这里的逻辑可以更简洁”,他回“你来写”。她写“我没时间”,他回“那你不要抱怨”。她写“这不是抱怨,这是代码审查”,他回“代码审查应该用正经的审查工具,不是在注释里写吐槽”。她写“我喜欢在注释里写”,他回“我知道”。最后这两个字让她的手指在键盘上停了一下。她知道他知道。他知道她喜欢在注释里写那些不需要存档、不需要审批、不需要对任何人负责的话。写给他看的,也只有他会看。
中午她给他夹菜。西兰花、青椒、胡萝卜——她不吃的东西都夹到他的外卖盒里。他照单全收,然后说“今天的盐放得比昨天少”或者“今天的胡萝卜切得太厚”或者“你能不能自己吃自己的”。她说不能。他问为什么。她说因为你点的外卖太辣了,我看着胃疼。他说你的胃还是我的胃。她说你的胃就是我的胃。说完之后两个人都沉默了。程越低头吃饭,耳朵红了。温以宁也低头吃饭,耳朵也红了。旁边工位的一个研究员抬头看了他们一眼,什么也没说,默默把椅子往远处挪了两公分。
下午的工作继续。温以宁发现程越的注释里开始出现错别字。不是技术术语的错,是日常用语的错。“优化”写成“优化”——不对,这个没错。是“边界”写成“边介”,“参数”写成“参树”,“校准”写成“校准”——这个也没错。总之是一些不仔细看根本看不出来的错,但她看出来了。她在注释里改,改完之后在后面加一个括号:“错别字已修正。”他回:“感谢。”她回:“不客气。”他回:“明天的蜂蜜柠檬水少放一点蜂蜜。”她回:“为什么?”他回:“因为你今天改了我三个错别字,我觉得你应该减糖。”她盯著这行字看了五秒,打了两个字:“幼稚。”删掉。打了三个字:“知道了。”储存。
宋晚晴走了之后,实验室少了一个人。院里说会补一个新的助理研究员,但流程要走两个月。这两个月里温以宁一个人做两个人的工作,早上八点到,晚上十点走,中间除了吃饭和去洗手间,没有离开过工位。程越没有劝她休息,没有说“你太累了”或者“你应该注意身体”。他只是每天中午把她便当里的菜多夹一点到她碗里,每天下午三点在她桌上放一杯新的蜂蜜柠檬水,每天晚上十点站起来说“我走了”,然后在门口站五秒,等她说“明天见”。
周四下午,院办通知温以宁去领新的服务器密钥。她走进行政楼的时候,在大厅遇到了周珩。他靠在墙上打电话,看到她,对电话里说了一句“等下再说”就挂了。
“温博士。”他点头。
“你怎么在这里?”
“送文件。顺便——”他看了一眼走廊尽头院办的门,“你们实验室那个泄露的事,处理结果下来了?”
“下来了。宋晚晴被开除了,院里启动了法律程序。”
“你怎么样?”
“什么怎么样?”
“心情。”
温以宁看著他。周珩的表情很淡,像在问一个不需要感**彩的技术问题。但他的问题本身就有感**彩——一个普通的工作关系不会问“心情怎么样”。
“还好。”她说。
“程越呢?”
“他也在实验室。”
“我不是问他在哪里。我是问他——”周珩停了一下,“算了,不重要。”
他转身走了。走了三步,回头。“温博士。”
“嗯。”
“他那个人,不会说话,不会表达,不会在对的时候做对的事。但他有一个优点——他决定了就不会改。”
温以宁站在大厅里,看著周珩的背影消失在旋转门外面。她想起周珩在电话里说的话——“他妈病危,海外合约,竞业协议,机场坐了六个小时。”这些她已经知道了。但周珩刚才说的是另一件事。他说“他决定了就不会改”。意思是五年前他决定离开,所以离开了。现在他决定留下,所以不会再走。
她拿了密钥回到实验室,程越正在改代码。她坐下来,打开电脑,没有提周珩的事。
“程越。”
“嗯。”
“你的手机借我一下。”
“干什么?”
“打电话。我的没电了。”
他把手机递过来,没有解锁。她接过来,萤幕亮著,停留在备忘录的界面。她不是故意看的——手机递过来的时候萤幕就是亮的,备忘录就是开著的。她的目光落在第一行,然后她没有移开。
备忘录的标题是一串数字。她的生日。
作者有话说
显示所有文的作话
第625章 第 625 章