"Love Hacker"(2/2)
请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,避免出现内容无法显示或者段落错乱。
“杜先生?”雯雯疑惑地看着他,“你脸色不太好。”
“没事……”杜小杰后退两步,落荒而逃。
他在安全通道的楼梯间撞见尐瞳。她坐在台阶上,咖啡罐放在一边,低头看着手机屏幕。
“读心术好玩吗?”她头也不抬。
“我听到了你的声音。”杜小杰喘着气,“为什么?”
尐瞳沉默了很久。楼道里的声控灯灭了,只剩手机屏幕的冷光照着她的脸。她划动屏幕,调出一个纯黑色的应用——界面和“LoveHacker”的粉色完全不同,是滚动的绿色代码流。
“我是第998号测试员。”她说,“这程序是我爸开发的。他叫顾明远,是个浪漫过头的老程序员,相信爱情可以被算法优化、被公式解构。我是他的第一个测试员,也是第一个失败案例。”
她点开一段日志记录。时间点是三个月前:
“用户998(尐瞳)任务失败。原因:过度依赖技术分析,情感互动机械化。系统判定:丧失程序定义内的“爱的能力”。惩罚:永久剥夺APP使用权,转为观察员权限。”
“什么叫程序定义内的‘爱的能力’?”杜小杰问。
“就是那些心跳加速、手心出汗、计算好的浪漫瞬间——所有能被程序量化的‘恋爱反应’。”尐瞳关掉屏幕,黑暗重新笼罩下来,“失败后,我再也触发不了任何任务,感受不到程序规定的‘心动’。但我得到了观察员权限,能看到附近用户的数据流,偶尔……能稍微干预一下。”
“比如让我的放电眼导致整条街停电?”
“那是意外。”她声音里有笑意,“本来只想让你桌上的台灯闪一下。”
“那读心术……”
“串频了。”尐瞳站起来,拍了拍牛仔裤上的灰,“我的观察员系统和你的用户系统偶尔会交叉。你听到的是我当时的实时想法——关于你扣错的扣子。”
声控灯又亮了。杜小杰看见她的耳钉在光下转了小半圈。
“还有九天,对吧?”她走到门边,回头看他,“我爸的程序有个最终机制:三十天内,完全依靠程序建立的关系,会被判定‘成功’,用户获得永久使用权。反之,任务失败……”
“就会永久失去爱的能力。”杜小杰接道。那条细则他看了无数遍。
“对。但没人知道那具体意味着什么。”尐瞳拉开门,楼道的光涌进来,“对我来说,只是不能再通过APP感受‘爱’了。至于真实的爱……”
她没说完,走了。
杜小杰在黑暗里站了很久。手机屏幕亮起,倒计时跳动到“9天0小时0分”。
新任务弹出来,只有两个字:
“真爱”
没有指引,没有模板,没有公式。
四、雨和伞
接下来的八天,APP进入了诡异的静默期。
没有新任务,没有提示音,只有倒计时自顾自地减少。杜小杰的生活却像被按了暂停键。他不再偷偷记录雯雯的作息,笔记本摊在桌上,最新一页只写了一句:“她转耳钉时,是顺时针。”
他试着用那些法则分析自己对尐瞳的感觉。
三秒对视法则?她总在他出糗时看他,眼神里一半无奈一半笑,每次对视都超过三秒,心跳会乱,不符合法则。
话题延伸公式?他们聊天的内容从APP漏洞跳到路边摊的关东煮哪个最好吃,毫无逻辑,但每次都停不下来。
微表情破译?她笑的时候左边嘴角翘得更高,生气时会不自觉地转耳钉——顺时针转是轻度烦躁,逆时针转是真的生气了。这个发现让他莫名高兴了一下午。
全部失灵。
第二十九天,从早上就开始下雨。杜小杰加班到晚上十点,走出写字楼时,雨已经大到看不清十米外的红绿灯。他没带伞,把公文包顶在头上冲向地铁站,却在第一个路口看见了尐瞳。
她撑着一把透明的伞,站在便利店招牌下,低头看手机。白光从她头顶泻下来,雨丝在光里变成千万条银线,把她整个人笼在一层朦胧的光晕里。
杜小杰停下脚步。
雨水顺着头发流进眼睛,有点涩。口袋里的手机在震动,不用看也知道,是最后二十四小时的倒计时提醒。
他朝她走去。
脚步声被雨声吞没。直到他走到伞边,尐瞳才抬起头。看见他时,她怔了怔,然后把伞挪过来一半。
“我在等你。”她说,声音在雨里显得很轻,“最后一天了,想看看你会不会触发什么隐藏任务。”
“没有任务了。”杜小杰说。雨水顺着他下巴往下滴,流过喉结,洇湿了衬衫领子,“APP从八天前就死了,只剩下倒计时。”
尐瞳没说话,掏出自己的手机。黑色应用界面上,代表杜小杰的光点正在剧烈闪烁,旁边弹出一行她从未见过的状态:
“用户999进入最终判定阶段。系统静默观察中。”
雨更大了。风吹斜了雨丝,噼里啪啦打在塑料伞面上,像无数细小的鼓点。伞太小,尐瞳把伞又往他那边挪了点,自己的左肩暴露在雨里,卫衣很快洇出一片深色。
“尐瞳。”杜小杰叫她。
雨声太大,她没听清:“什么?”
他深吸一口气。那些背过的情话、练过的表情、计算好的角度,全从脑子里蒸发了。笔记本里的一百零八条法则,没有一条教他如何在倾盆大雨里,对着一把透明伞下的女孩,说出此刻堵在胸口的东西。
最后只剩下最简单、最笨拙的一句:
“没有了那些法则,”他提高声音,几乎是在喊,“我连怎么喜欢你都不会了!”
说完他就后悔了。太直白,太苍白,没有铺垫,没有技巧,甚至语法都不太对。雨水灌进他领口,冷得他一哆嗦,更显得这话傻气。
尐瞳握着伞柄的手紧了一下。
很细微的动作,但杜小杰看见了。她的指节微微发白,拇指无意识地摩挲着伞柄的塑料接缝。透明伞面随着她的动作轻轻一晃,更多的雨水顺着伞骨汇聚,流成一道细细的水线,不偏不倚,落进杜小杰的衣领。
冰凉的触感顺着脊椎滑下去。
与此同时,两个人口袋里的手机同时发出“嘀”的一声长鸣。那声音穿透厚重的雨幕,清晰得诡异,像某种宣告终结的钟声。
杜小杰掏出手机。
粉色APP的界面正在瓦解。不是黑屏,不是闪退,而是一种缓慢的、近乎优雅的消散——所有的按钮、任务栏、倒计时数字,都像被雨水浸透的墨水画,边缘开始模糊、融化,变成一团团氤氲的色块。粉色褪成浅红,浅红淡成灰白,最后,屏幕中央浮出一行字:
“程序归零。数据清空中……”
“恭喜你,用户999。”
“现在可以开始真正学习了。”
然后,屏幕彻底暗了下去。再按电源键,只有手机厂商的logo,那个粉色心形图标消失了,像从未存在过。
杜小杰抬起头。
尐瞳也正看着自己的手机屏幕。黑色应用界面上,绿色代码流停止了滚动,最后定格在一行简单的日志:
“观察对象999:判定通过。学习期开始。”
她按灭屏幕,抬起头。雨还在下,打在伞面上,啪嗒啪嗒。伞下的小小空间里,只剩下这单调的节奏,和两个人交错的呼吸声——杜小杰的有些急,她的很轻。
她先笑了。
不是以前那种带着无奈或调侃的笑,也不是程序分析报告里那种“嘴角上扬15度,眼周肌肉收缩”的标准笑容。而是一种很轻、很新鲜的、像第一次学会某种表情的笑容。左边嘴角翘得比右边高一点点,眼睛弯起来,睫毛上沾着细小的水珠,眨动时像蝴蝶抖落翅上的雨。
“你看,”她说,声音也沾着湿漉漉的雨气,“下雨了。”
杜小杰低头看自己湿透的衬衫和西装裤,又看看她湿了一半的肩膀。然后他也笑了,笑得肩膀发抖,笑得眼睛发酸,笑得那些残存的、关于完美和法则的焦虑,都随着这笑声散进雨里。
“嗯,”他说,“下雨了。”
远处写字楼的灯光在雨幕中晕开,变成一片片模糊的光斑,像梵高的星空融化在了水里。没有任务了,没有法则了,没有百分之百的成功率和十二页的完美方案了。只有这一小方伞下的空间,两个人湿漉漉的肩膀几乎碰在一起,雨声大得盖过了心跳——或者心跳终于学会了不用被听见,不用被量化,不用被评价为“达标”或“未达标”。
尐瞳把伞又往他那边推了一点。
这个动作没有任何APP指导,没有计算角度和受力分析,她只是这么做了。因为他在雨里,因为她有伞,因为——也许只是因为,她想这么做。
“走吧,”她说,“雨一时半会儿停不了。”
他们走进雨里。
伞很小,两个人不得不靠得很近。杜小杰的公文包还在滴水,尐瞳的球鞋踩进水洼,溅起细小的水花。谁也没再说喜欢,没提APP,没提倒计时和齿轮耳钉和那些失败的约会。只是并肩走着,在初冬的冷雨里,走向地铁站明明灭灭的灯光。
雨丝在路灯下变成金色的线。
尐瞳忽然说:“我爸的笔记本最后一页,写着一句话。”
“什么?”
“爱不是程序,是bug。”她侧过脸看他,眼睛在雨夜里亮晶晶的,“无法预测,无法修复,但让整个系统变得有趣。”
杜小杰想了想:“那我们现在是……有趣的bug?”这bug会一直这样吗?…
“大概是吧。”她笑,“两个刚卸载了杀毒软件的bug。”
地铁口近了。灯光从地下透上来,暖黄的一团。杜小杰忽然停下脚步。
“尐瞳。”
“嗯?”
“我笔记本的最后一页,”他说,“现在是空白的。”
她看了他几秒,然后点了点头,很轻地“嗯”了一声。
“雨还在下。但伞下的空间是干的,暖的。他们继续往前走,走进光里,走进新的、没有程序的夜晚。”
而某个已被删除的程序深处,最后一条日志在彻底清空前悄然生成:
“最终判定:通过。”
“学习期,开始。”
“祝你们好运,bug们。”
后记:
三个月后,杜小杰在搬家时翻出了那个黑色笔记本。
他盘腿坐在一堆纸箱中间,翻开扉页。“恋爱就像编程,只要算法正确就能运行”——那行字还在,但
“但最好的程序,往往是从一个美丽的bug开始的。”
字迹有点眼熟。他笑起来,把笔记本塞进“要保留”的箱子最底层。
“窗外阳光很好。”
没有APP提示音,没有倒计时,没有任务。只有生活本身,带着所有不完美的、笨拙的、无法被计算的温柔,继续向前。
“而他们,两个卸载了程序的bug,正在学习如何运行。”