第三章:程式设计师
  列车忽然震了一下。
  林望的耳朵里“嗡”地炸开。
  下一秒,四周的灯光同时熄灭,整节车厢陷入绝对的黑暗。
  林望胸腔骤紧。
  世界仿佛被按下了暂停键,只剩下他——以及一车厢密密匝匝的呼吸声。
  不对。那不是呼吸声。
  那是一种极细、极密的敲击声。
  “噠……噠噠……噠噠……”
  像谁在黑暗里敲键盘,却又贴近得仿佛下一秒就会从他肩膀后面伸出手。
  林望猛地转头——想找风衣女人,却只能看到一片死黑。
  然后,黑暗被一道白光突然切开。
  那光亮得像手术灯,闪得他眼睛一刺,他本能抬手去挡。
  但光不是从车顶来的。
  是从——车门缝隙里渗出来的。
  “嘶……”林望倒吸一口气。
  车门缝隙被扯成一道细长的裂口,像有什么东西在外面用力撬。
  那亮得反常的白光,从裂缝里喷薄出来,把整节车厢割成了两半。
  “这是……开门了?”
  林望心里猛地一跳。
  那一瞬的情绪复杂到几乎说不清:
  ——一点鬆动的希望;
  ——一点侥倖的欢喜;
  ——更多的是不知道这种“开门”到底意味著什么的寒意。
  还没让这种“或许能逃出去”的想法成形——
  那条缝隙却猛地撑大,从几毫米迅速撕到几十厘米宽。
  “吱——咯——咯——”
  一种令人牙根发酸的金属撕裂声在黑暗中炸响,像有什么巨兽正掰开铁门的骨头。
  车门彻底撑开。
  但门外,不是站台,也不是隧道。
  而是——
  一间办公室。
  准確地说,是一间在午夜时分被一道诡异白光强行打亮的办公室。
  什么鬼?
  林望下意识后退一步。
  就在这时——整节车厢所有人,同时抬起了头。
  像被同一个开关点亮。
  几十双浑浊、空洞、没有焦距的眼睛,齐刷刷对准他。
  林望只觉得心臟停了一拍。
  还没等他反应,离他最近的那几名乘客——包括黑框眼镜男人——同时伸出手。
  那些手同时扣住他的手腕、肩膀、脖颈、背包、衣服,像是要把他从现实里剥离出去。
  林望被嚇得差点叫出来,却发不出声音。
  他疯狂挣扎,但力量像撞进海水里,被吞没。
  手越来越多,就在他惊愕的一瞬间,乘客们猛地一推。
  “砰——”
  他整个人被硬生生推出车门,进入了那间亮著诡异白光的办公室。
  身后的车门“哐”地关上。
  整个车厢瞬间恢復死寂,仿佛刚才的一切从未发生。
  林望瑟瑟发抖,看著眼前恐怖的办公室。
  每个格子间都是空的,椅子歪著,无数电脑屏幕亮著。
  线缆拖满地板,密密麻麻,繁复纠缠,像黑色的、吃人的藤蔓。
  地板返潮,林望小心翼翼地踩上去,鞋底发出咯吱咯吱的噪音。
  他皱眉,慢慢向前走,不小心撞到一把椅子。
  椅子“吱呀”一声——
  下一瞬,所有的椅子同时转向他。
  几十把空著的转椅,齐刷刷对准他。
  林望只觉毛骨悚然,喉咙紧绷得发不出声音。
  这时,他又听到了连续敲击键盘的声音——“噠噠噠噠……”
  无序,又慌乱,像被恶魔追赶的脚步声。
  循著键盘声望去,他终於看见了“人”。
  或者说——一个“人形”的东西。
  一个男人,坐在最里面的工位上,背影微驼,黑框眼镜架在鼻樑上,衬衫袖子撩起,肩膀一抖一抖。
  他看著电脑屏幕,手在键盘上方飞舞。
  键盘声响著——噠噠噠噠噠噠噠噠噠……
  林望怔住。
  ——那双手,虽然动得飞快,却根本没有碰到键盘。
  是键盘自己在动!
  键帽像被看不见的手狠狠敲击,敲到机械轴撞到底时还在抖。
  林望轻声道:“……是你……”
  他认出了他。
  这个男人,就是车厢里那个戴黑框眼镜的男人。
  眼皮上那条焦黄疤痕现在更明显了,像被烤过的皮肤裂纹,在白光下发出暗沉的顏色。
  眼睛男人打字的手忽然停住了。
  他像是沉浸在工作中却突然被人打扰,脖子僵硬地往侧面扭。
  那速度、那角度——都不正常。
  像齿轮卡死后被硬生生掰过去。
  他转过脸,一双无神的眼睛死死盯著林望。
  眼白极多,眼珠极黑。
  那种黑,不是顏色,是深度——像看著一口直通地下的井。
  男人嘴唇微动,喉咙像被堵住一样发出嘶哑的破碎音节:“帮我……帮帮我……!”
  林望下意识地后退一步,全身起冷汗。
  “你……是谁?要我帮你什么?”
  男人机械地重复:“你要帮我……我只是……一个……程式设计师……我在加班……你帮帮我……帮帮我……”
  他的声音忽然变得温柔,像一个濒死的人抓住最后漂浮木片。
  “……不然……我会永远卡在 2:43,你也一样……”
  话音未落,灯突然一闪。
  林望周围的空间开始弯曲。
  不是地震,而是肉眼可见的……空间折断。
  天花板像被向下拉扯,墙壁像被向外推开。整个办公室的四周在缓慢变形,像被什么巨物在揉捏。灯泡忽然往下垂了一截。电线像被吸到天花板上一样往上抽。
  林望感到头皮阵阵发麻,只想逃离,却又无处可逃。
  “又开始了,又开始了……”
  男人不知是在对他说话,还是在喃喃自语。
  空间的变化没有停,它在进一步扭曲。
  墙壁上开始出现污渍——像有人被压在墙上,挣扎、抓挠,留下指痕。
  指痕一条条出现,越来越密。
  等一切平息,所有电脑屏幕上的时间同时一跳,重新回到了2:43。
  “我一开始以为,只是系统死机。后来才知道,死的是我。”眼镜男人的声音犹如从深渊中渗出。
  “一个过劳而死的程式设计师。”林望瞳孔骤缩。
  所有的电脑屏幕一起闪烁,跳出界面:
  【凌晨 2:43】
  【伺服器崩溃】
  【系统反覆重启失败】
  【未保存文件:487个】
  男人倒在了椅子上,一动不动。
  后颈僵硬,肩膀绷紧,像一具风乾的尸体。
  林望感到一阵强烈的不安。
  这时,一段录音突然从某个电脑的音响里传来出来。
  “——我撑不住了。”
  “——好睏……”
  “——再改一行就好……”
  “——真的好睏了……”
  声音疲倦、嘶哑,尾音发颤。
  像一个活生生的人,在死前一分钟,和空气说话。
  林望心里一紧。
  耳机好像被无形的力量控制,自动从桌面滑起,悬在空中,把录音放得更大声,让他不得不听。
  “——我不能睡。”
  “——睡了就完了。”
  “——別睡……別睡……別睡……”
  录音里的男人开始轻轻敲打键盘。
  但现实里的男人没有动。
  林望忽然意识到——他正在听到一个死人,生前最后一分钟的声音。
  下一秒,显示器屏幕忽然“咔”的一声裂开一道细缝。
  没有碎,只是裂,一条极细的白线。
  林望愣住。
  办公桌上的滑鼠开始自己移动,滑到右下角,点开一个隱藏窗口:
  “监控录像(2:43)”
  界面自动全屏。
  ——录像开始播放。
  画面里,死者正坐在同一个位置。
  眼睛死死盯著屏幕,脸色惨白,像一座快要塌的雕像。
  林望喉结滚了一下。
  录像里的男人,突然用力摇了摇头,然后抬手捂住脸。
  “別睡……別睡……”
  他的身体开始左右摇晃,像快晕过去。
  突然。
  嘭!
  男人的额头狠狠撞上了键盘!
  声音清脆,像是一块石头被丟在硬地上。
  林望被嚇得后退半步。
  录像继续——
  男人颤抖著撑起身体,手指胡乱扫过桌面,抓住咖啡杯,却因为用力过猛,咖啡直接泼到主机上。
  啪!!!
  主机火花四溅。
  灯闪了一下。
  世界在同一秒亮灭。
  录音里开始出现静电噪声。
  “——不行……不行……不行……”
  “——我不能死在这里……”
  “——谁来救救我……谁来救我……”
  林望的心跳快得要炸。
  他看著椅子上的那具“现实里的”男人。
  他依旧僵坐著,一动不动。
  录像里,男人猛地抬起头——他眼睛里的血丝像突然爆开。
  “救……我……”
  画面定格。
  然后——倒播。
  录像里的动作开始往回走:
  火花倒回机箱;咖啡洒回杯子;额头离开键盘;肩膀后仰;姿势復位。
  画面倒回到 2:43。
  男人再次开始发疯一样敲键盘,脸离屏幕越来越近。
  林望额头冒汗。
  突然——现实里的“尸体”动了。
  先是指尖抽动,隨后肩膀轻轻抖。
  林望整个人像被冰锥钉住。
  死者慢慢抬起头,像颈椎一节一节被拉开。
  他的眼睛在黑暗中睁开。
  血丝像树根一样蔓延。
  嘴唇轻轻张开:“我……真的……不想死……”
  林望退后一步,却忘了身后没有墙。
  他跌入黑暗空间。
  下一秒——
  世界又亮起。
  他再次站在办公室中央。
  程式设计师坐在椅子上,背对著他。
  重复。
  空间重置了。
  林望愣住:
  ——他又回到2:43了。
  这不是幻觉。
  这是死亡循环。
  一个死者,被困在“临死前的一分钟”里,永远循环。
  林望意识到……
  自己要是想离开这个空间,离开这一分钟,只有帮这位程式设计师完成未竟之事。
  他环顾四周,看到电脑桌面上展开著一份未完成的代码:
  【修復系统漏洞。】
  以及一个文件夹:
  【给妈妈的消息(草稿)】
  他心口狠狠一震。
  程式设计师的手指忽然开始乱抓,像溺水者抓住空气。
  “我……我没发出去……”
  “消息……没发出去……给妈妈的……”
  “我……好冷……”
  他开始剧烈颤抖。
  林望突然明白——
  程式设计师死前最后的执念——不是工作邮件,而是那条没发出去的——给妈妈的消息。
  “帮帮我,否则……”男人抬起手,指向墙上的掛钟。
  林望顺著他的手看去,指针在抵达2:44的时候,又往回跳了一格。
  当这一切重复的时候,房间的空间再次扭曲。
  “告诉我,我该怎么帮你?”
  程式设计师颤抖地指向屏幕方向。
  “我……我没发出去……”
  他像被扯开了嗓子,又像在哭,“我妈……我妈还在等我……”
  林望还未来得及问清楚——
  整间办公室突然黑了一秒,又亮起来。
  但是亮起的光线像被调低了对比度,整个空间像加了一层奇怪的滤镜。
  接著,最远的工位位置传来“嘀”的一声。
  像被远端唤醒,屏幕上跳出一个窗口——
  未完成的工作任务:待上传。
  下一秒,又跳出第二个窗口:
  写给妈妈的邮件(草稿)。
  林望后脊樑一凉:“……这是你刚才说的?”
  程式设计师没有回答。
  因为在这诡异的、像被扭曲过的光线里,他的脸开始变形。
  不是五官变形,而是——表情在变:从恐惧,变成木然。
  像被系统强制覆盖。
  同一瞬间,隔壁的第二个工位里,传来一声僵硬的“开机”声。
  林望猛地转头。
  第二个“眼镜男”出现了。
  ——同一张脸。
  ——同一件衬衫。
  ——同一滴滴在衬衫上的咖啡渍。
  完全复製。
  甚至连他坐下的动作,都像 ctrl+c + ctrl+v。
  这一个程式设计师面无表情,像机器人一样,盯著屏幕上的“上传项目”按钮,喉咙里挤出一句机械的低语:
  “任务……还没完成。必须……发出去。”
  林望愣住:“……你们两个……?”
  第一个程式设计师突然尖叫:“不是那封!不是那封!”
  他一把抓住林望,力气大得不像活人,声音整个是撕裂的:
  “我不想死——我想发的是给我妈的信!那封……那封我一直没敢发的……我怕她担心……我真的怕她担心……”
  “但我后悔了……我死的时候……我后悔了啊!!”
  “我的妈妈……她没见到我最后一面……”
  他说到“妈妈”两个字时,整张脸忽然亮了一瞬,泪水疯狂往下掉。
  林望的喉咙一下堵住了。
  他突然理解了——这是真正的他。
  一个死前后悔到崩溃的“真实意识”。
  而另一个——
  第二个程式设计师抬起头,眼神空得像没有灵魂。
  他冷冷说:“工作最重要。
  “把工作邮件啊发出去。”
  “你不能……丟下工作。”
  林望毛髮瞬间全竖。
  这是“被压榨的人格残影”。
  所有恐惧、加班、猝死前的公司洗脑,都变成了这张可怕的脸。
  下一秒,这个“残影程式设计师”突然猛衝过来,速度快得完全不像人类。
  林望被扑倒在地。
  程式设计师残影骑在他胸口,掐住他的喉咙,咬牙切齿:
  “你敢发那封信……你就和我一起死在这!”
  第一个程式设计师尖叫:“住手!他是来帮我们的!”
  他扑上来,两股力量开始疯狂撕扯林望。
  桌子倒了,椅子飞出去,地板震动,空气像被撕开。
  林望被夹在两个“死前执念”之间。
  一边是哭喊著的程式设计师:“帮我!!我没有机会了!请把信发出去!这是我留给我妈妈最后的话!”
  一边是冷得发疯的程式设计师残影:“把工作邮件发出去!今天已经是deadline!再不发出去工作就没了,连房租都付不起了!”
  空间开始扭曲。脚下散乱的电线,像某种活物一样蠕动。
  整间办公室像被死循环的代码套住,无限递归。
  墙壁变得透明,露出无数个同样的办公室。
  每一间办公室里,都有一个程式设计师死在键盘上。
  每一间里,都有一个残影疯狂敲击著“上传”。
  每一间……都有2:43的时钟跳著秒表,到达2:44的时候,时空又再次重置,恢復到2:43。
  空间重组,死去的程式设计师又再次復活,绝望地重复死前最后一分钟,徒劳地试著完成最后的执念。
  像无数个他被复製、復活,又再次死在无数个死循环里。
  耳朵里同时响起数十、数百个程式设计师的尖叫:
  “我妈不会知道我多难过……”
  “我妈一直在等我给她打电话、发消息……”
  “我妈……永远不会知道……我后悔……”
  “我后悔没有早点回家……”
  “我后悔没有多陪陪她……”
  “我每天扑在工作上,两个月没回家吃过饭了……”
  林望的心臟被狠狠揪住。
  他第一次感觉——
  这不只是一个因加班而猝死的程式设计师,是一群都市打工人绝望的声音。
  在这个诡异的空间里,每一个程式设计师都死在这种“不能让妈妈担心”的循环里。
  每一个程式设计师都死在一次次的后悔中。
  林望咬紧牙关,用尽全身力气,死命推开残影程式设计师,向电脑屏幕爬去。
  第一个程式设计师哭著趴在地上:“快!求你!”
  残影发出像碎玻璃一样的吼声:
  “你敢!”
  他扑上来抓住林望脚踝。
  林望一脚狠狠踹开他,手指在颤抖中敲开第二个窗口。
  ——给妈妈的信。
  邮件窗口自己放大、拉伸,像要把整个房间吸进去。
  第一行字闪烁著:
  “妈,我最近真的很累,一直没回去看你。工作太忙了,但我一直惦记著你。你身体好些了没有?记得一定要按时吃药,不要硬撑,需要配药了给我打电话。等我下次回来,一定帮你修好那个漏水的水池……”
  林望盯著那行字,突然握紧拳。
  然后——按下【发送】。
  啪!
  整个办公室像被一股力量击碎。
  电光乱闪,无数程式设计师的影子像被强制註销,全部扭曲、崩塌、消失。
  哭泣声、敲键盘声、心跳骤停声……
  全部一瞬间静止。
  只剩下一个声音——
  那个程式设计师,坐在电脑前,轻轻吐出一口气:
  “……谢谢你。”
  他抬起头,脸上没有泪,没有痛苦,只有一种终於得救的安静。
  “我可以走了。”
  下一秒——
  办公室一片黑。
  空气完全停滯。
  接著,空间崩塌。整间办公室像被一只巨手捏碎,所有墙面、灯光、电线、地板同时塌陷、摺叠、扭曲。
  林望被甩出重重黑暗。
  像坠落。
  坠落。
  坠落在——地铁车厢里。
  明亮而冰冷的灯光重新照下来。
  所有乘客站在原位。
  表情麻木。
  但少了一个人——
  戴黑框眼镜的程式设计师不见了。
  这时,一道极轻、极冷、却完全正常的女声响起——就是平日里地铁中最普通不过的自动播报。
  “温馨提示——本次列车正在正常运行中,请各位乘客站稳扶好,地铁运行过程中,请勿在车厢內追逐打闹。请把爱心专座留给有需要的乘客。列车进站时,请勿靠近车门。上下车当心缝隙,请注意脚下安全。门灯闪烁时,请勿上下车。地铁內严禁乞討、卖艺、兜售、散发小gg等行为。再次友情提示,本次列车为封闭运行模式。请乘客按既定流程乘坐,避免擅自操作。请乘客保持在本车厢內等候,不要变更位置,不要隨意下车,以免影响本次行程。”
  语气温和、理性,甚至礼貌,就是最普通的地铁自动播报。
  如果只是听一遍,根本不会发现任何问题。可若是细细推敲话中的细节,又觉毛骨悚然。
  正常的地铁怎么可能提示人“不要变更位置”?
  还有,什么叫上“不要隨意下车”?
  林望的心臟像被冰指捏住——这条线路上,根本没有真正的站点。
  本次列车没有终点,这是一条死亡线路,这是一节不存在的车厢。
  这才是语音播报背后的真相。
  所谓“下车”,只有一个意义——那是一个人死亡的时刻。
  程式设计师的影子消失在光线褪尽的格子间深处。
  他,被释放了。
  他真的“下车”了。
  林望额角汗流得像刚从溺水里爬出来。
  穿风衣女人靠在隔离门旁,淡淡地说:
  “你是第一个成功过关的人。”