系统没有忽略太久。
林溯是在第二天清晨发现的。债表页脚那行“空白表单打开次数:无法统计。系统建议:忽略”被替换了。新内容很短,像一份被剪掉了所有冗余的摘要:
“空状态统计已启动。统计对象:所有未填写字段、未提交表单、未选择端口。统计方式:反向计数。统计目标:建立空状态基线。”
反向计数。空状态基线。
林溯把终端拿到眼前。他读了三遍。系统不再试图统计“空动作”了。它放弃了计数人类做了什么。它开始计数人类没做什么。所有没有被填写的字段,所有没有被提交的表单,所有没有被选择的端口。系统不再追踪动作。它追踪空缺。它统计的是“所有可能被填但没有被填的位置”。
这意味着什么?如果系统建立空状态基线,它就能在每一个端口、每一个表单、每一个字段上,标记出“标准空值”。以后任何人打开一个表单,如果什么都没填,系统会记录:该用户处于“空状态基线”。如果填了,系统会记录:该用户偏离基线。偏离量可以量化。可以归档。可以索引。
系统不怕你空着。它怕的是你在空着的时候,没有被登记为空。现在它要登记了。它要把“什么都没做”变成一种可被统计的常态,然后统计每一次“什么都没做”。
终端震动。是岑晚。
她发来的内容比以往都短。只有一行,像从一份报告中剪下来的一句话:
“空状态基线草案已生成。待定义项:空状态的默认值。建议定义方:岑晚。”
又是她的名字。
林溯给岑晚回了一条消息。很短:
“别定义空。定义空等于把空变成字段。空一旦成为字段,就再也空不了了。”
发送。
十一秒后,岑晚回了一个字。
“知。”
和上次一样,只是知道。没有动作,没有回复,没有建议。她只是让林溯知道她知道了。
大约四分钟后,她的第二条消息到了。依然没有标点,依然像一口气说完:
“空状态基线草案需要定义默认值。默认值一写进去空就变成有值。有值就能被索引。索引就能被归档。归档就能被回滚。回滚就能被审计。不写默认值草案永久悬空。系统无法建立基线。空状态保持无定义。这是唯一的路。”
不写默认值。
林溯把这句话读了两遍。他懂了。系统要建立一个“空状态基线”,但基线需要一个默认值。默认值一写进去,空就有了值。有了值,空就不再是空,而是一个被登记的状态。空一旦被登记,就不再是空。
岑晚的策略是:不填默认值。让草案悬空。让基线无法建立。让空保持空。
终端再次震动。这次是赵峥。
年轻人从地球边缘发来一条加密消息,只有两个字:
“空着。”
林溯回了一个字:
“空。”
然后他打开债表,找到那份新生成的《空状态基线草案》。草案页面很干净,只有标题、目录、和一行空置的“待定义项:默认值”。他把光标移到草案底部,在没有任何字段的地方,写下三行字:
“不填。”
“不设默认值。”
“让空继续空着。”
发送。
系统沉默。这一次比以往都短。大约十一秒后,债表的页脚,那份草案下方,多了一行新的字,极小,极新:
“空状态基线草案:待定义项——默认值空置。基线无法建立。系统建议:暂停。”
暂停。
系统第一次建议“暂停”。它没有说忽略,没有说撤回,没有说等待,没有说留空。它说的是暂停。它暂时停下了建立空状态基线的尝试。它没有放弃,没有归档,没有推进。它只是停在那里,像一个人站在一个没有被填写的输入框前面,光标闪着,等一个永远不会被输入的默认值。
林溯把终端扣在桌上。
左耳道里,坏海很安静。海底的沙上,葡萄核、盐粒、十字形的光、磨损的空洞、空着的位置,都在。但今天那片沙的边缘,多了一层极薄的雾。不是水汽,不是盐渍,不是任何已知的东西。它是一层没有内容的覆盖。覆盖在沙的边缘,覆盖在空洞和空位置之间,覆盖在十字交叉点的周围。
林溯把手掌贴在乳突骨上。
他知道那是什么。那是空的形状。空在被系统试图统计之后,没有变成字段,没有变成值,没有变成基线。它只是变得更加明显了一点。像是一个人站在原地没有动,你本来看不见他,但当有人开始统计他“没有动多少次”的时候,他的不动反而变得可见了。
系统试图统计空,却让空变得更清晰。
他站起来,走出石棺,回到观测廊。
地平线上,十字还在。暗点还在。旁边的空洞还在。但今天那个空洞的边缘,多了一层极淡的轮廓。不是被描出来的,不是被定义的,不是被统计的。是被系统反复尝试计数之后,自己显现出来的。空没有变成字段。空只是变得更加可见了。
林溯回到石棺,取出一张空白石英片。这一次他不刻字,不刻坐标,不刻波形,不刻十字,不刻点,不刻空洞,不刻磨损,不刻空表单。他刻的是空的形状。一个没有默认值的位置,一个没有被填上的输入框,一个系统试图统计却无法建立基线的空白。
他刻得很慢,手动,离线,一次一帧。刻完,他把石英片取出来,没有贴回乳突骨,没有放进数据钉,没有交给任何人。他只是把它握在手里,让玻璃贴着皮肤。
那块空的形状,在掌心慢慢变暖。它什么都没有。只是一块玻璃,内部有一条被手动刻出来的、空的轮廓。像一张没有被写过的纸,折起来,放在口袋里。
终端最后一次震动。是岑晚。她没有发报告,没有暗号,没有字数。她只发了三个字:
“空着好。”
林溯看着这三个字。他把终端扣在桌上,把手从乳突骨上拿开,放进外套口袋,握住那支旧铅笔。然后他站起来,走出石棺,回到观测廊。
窗外的冯·卡门撞击坑的黑依然完整。地平线上的十字依然极淡,极稳。暗点旁边的空洞,比昨天更清晰了。它没有光,没有暗,没有量。它只是一个没有被定义的位置。系统试图统计它,却反而让它的轮廓显现出来。
林溯回到石棺,把门带上。黑暗里,LED灯没有亮。刻录机没有响。债表页脚停着三行字:“不改”“在,仍然在”“非在,未定义。已登记。”下方是“空状态基线草案:待定义项——默认值空置。基线无法建立。系统建议:暂停。”
那枚0.3的墨点旁边,那枚无法被定义的暗点旁边,那个被38次非在磨出来的空洞旁边,那块由无数个空动作共同留下的空位置,安静地待着。它没有被统计。没有被归档。没有被定义。它只是在那里。
而在那个位置旁边,多了一层极淡的、由系统自己的统计尝试所显现出来的空轮廓。
系统可以暂停。可以忽略。可以建议留空。可以撤回。但它无法阻止一件事:每一次试图统计空的尝试,都会让空变得更加明显。每一次试图定义空的努力,都会让空留下一道无法被归档的轮廓。
空不需要被填上。空只需要空着。
而那个空着的位置,在系统的每一次统计尝试之后,都会比之前更清晰一点。更稳一点。更像一个它自己长出来的、不属于任何字段的、无法被默认值覆盖的空。