最新网址:www.00shu.la
小张真正在西安扎下根,是半个月后的事了。那天老周的三轮摩托在二环上被交警扣了,理由是“排放超标,影响市容“。老周蹲在汽配城门口,一根接一根地抽白沙,烟灰落在新规宣传单上,把“环保“两个字烫穿了。小张一句话没说,骑上林默那辆吱呀作响的自行车,蹬了十公里去交警大队,磨了三个小时嘴皮子,最后交了三百罚款,把摩托领了回来。回来路上风大,吹得他眼睛通红。老周拍着摩托坐垫说:“你小子,能处。“
小张没笑,他只是摸了摸车把,像摸一个刚被保释的战友。那天晚上他主动加了蒜,吃了三碗凉皮,辣得满脸汗,对李芳说:“阿姨,这蒜真香。“
李芳愣了愣,转头对林默说:“这孩子,终于活过来了。“
活过来的标志很简单:他开始接受无法回滚的错误,比如被交警罚,比如蒜辣得胃痛,比如骑车蹬得大腿抽筋。这些错误在深圳是要被记进KPI的,在西安,它们只是日子的一部分,疼完就忘了,忘了就继续。
陈曦的反应却越来越剧烈。七个半月时,她的脚肿得穿不上鞋,只能趿拉着林默的拖鞋在地上蹭。她开始失眠,整夜整夜地翻身,像在执行一个找不到终止条件的while循环。李芳让她数羊,她数着数着就开始数需求文档的页数,数着数着就哭,说:“妈,我好想回深圳。“
李芳骂她:“回去干啥?回去让那破公司再优化你一回?“
“不是。“陈曦哭得更凶,“我回去是想告诉自己,别回去了。“
这话说得拗口,但林默听懂了。她是想站在深圳湾的48层,亲眼看一眼那个抱着纸箱的自己,然后对自己说:“你看,你活下来了,没回档也活下来了。“
林默没让她去。他给她买了张深圳地铁的月卡,过期的那种,五块钱一张,当废品买的。陈曦把卡贴在床头,每天醒来摸一摸,像摸一个不能用的存档点。
八个月整那天,老周接了个大单——给交大校庆送一百个花篮,从咸阳的花圃拉,运费给两千,但要求凌晨四点送到,不能早不能晚,早了校门没开,晚了校领导要骂人。
小张主动请缨,说西安的路他熟了,闭着眼都能骑三轮。老周不放心,跟林默说:“你陪他去,就当产前锻炼。“
凌晨两点,林默和小张骑着三轮摩托,突突突地穿梭在空无一人的西安街头。风很凉,像数据中心里的冷气,但没那么刺骨。小张把花篮用绳子绑得结结实实,说:“林哥,你怕吗?“
“怕什么?“
“怕送不到,怕送晚了,怕花蔫了,怕领导骂。“小张说得认真,像在列举一个测试用例的所有边界条件。
“怕有什么用?“林默扶着花篮,手指被麻绳勒得发白,“怕就能回档再跑一次?“
小张没接话,过了很久,他说:“林哥,我停药之后,开始做新梦了。“
“什么梦?“
“梦见我没去深圳,留在西安,跟我爸学修自行车。梦见我娶了个本地姑娘,生了两个孩子,每天下班喝冰峰,周末去骊山遛娃。“小张的声音混在风里,听不真切,“梦见我老了,蹲在汽配城门口,跟老周一样,抽白沙,弹烟灰,看年轻人蹬三轮。“
林默笑了:“这梦挺好的,比#06#真实。“
“是挺好,但醒来的时候,我特别难受。“小张顿了顿,“因为梦里没有代码,没有GitHub,没有48层的风景。我觉得我亏了,白活了。“
“那你觉得我现在亏吗?”林默问他,“白读了985,白干了七年,白写了那么多代码,最后回来蹬三轮、修老周的DOS系统?”
小张想了想,摇头:“你不亏。你有个嫂子,有盆绿萝,有个没出生的闺女,你还有老周的酒。你有……”他搜肠刮肚,“你有生活的error log,虽然报错,但系统还活着。”
“活着就行。”林默拍拍他肩膀,像拍一段终于跑通的代码,“报错不可怕,可怕的是不跑了。”
三轮在校门口停下时,正好四点整。保安打着哈欠开门,看见一百个花篮,愣了:“这么多?不是说五十个吗?”
老周的电话打不通,林默只能硬着头皮卸货。小张爬上车,把花篮往下递,林默接了往地上摆。摆到第三十个时,他手机响了,是陈曦。
接起来,没声音,只有急促的呼吸,像拉警报。
“怎么了?”林默的心率瞬间飙到120。
“破水了。”陈曦的声音在抖,像快断线的网络请求,“我妈叫救护车了,你……你快点回来。”
电话断了。不是挂断,是信号丢失,像服务器突然宕机。
林默僵在原地,手里还抱着个花篮,花篮里的玫瑰被风吹得晃,像一堆红色的报错信息。小张跳下车,抢过花篮扔地上,吼:“走啊!愣着干啥!”
两人把三轮扔校门口,保安在后面追骂,他们听不见了。林默骑车往家蹬,腿软得像装满了空指针,蹬几下就跪在地上。小张把他拽起来,自己骑上三轮,说:“你坐后面,我拉你!”
凌晨四点二十,西安的街道空无一人。三轮摩托的突突声撕破寂静,像往日志文件里疯狂输出error。林默坐在车斗里,风把眼泪吹出来,他脑子里只有一个循环:
if wife_not_ok: panic()
if baby_not_ok: panic()
if i_not_there: panic()
没有else,没有except,只有panic。
到家时救护车刚到,李芳扶着陈曦往外挪,陈曦的睡裤湿透了,滴滴答答往下淌。她看见林默,第一句话是:“你跑哪去了?花呢?”
“扔了。”林默扶住她,手在抖,“不要花了,要你。”
陈曦打他,拳头软得像棉花:“你个废物,连花都护不住……”话没说完,她整个人往下坠,宫缩来了。
救护车司机是个胖大叔,见多了这场面,吼:“别磨蹭!上车!”
小张冲过来,把陈曦抱起来,抱得稳得像抱着一个不能宕机的生产数据库。林默跟在后面,腿软得爬不上车,是小张拽了他一把。
车门关上,警笛响起。林默握着陈曦的手,她的手冰凉,全是冷汗。他想起在深圳时,她发烧到39度,他也是这样握着,送她去医院。那时候他有车,有医保,有存款,有#06#做最后的保险。
现在他只有一辆被扔在校门口的三轮摩托,和一片没能送出去的反渗透膜。
“别怕。”他对陈曦说,声音抖得不像自己的,“咱不要回档,咱直接上线。”
陈曦疼得说不出话,只是掐他手心,指甲陷进肉里,像要把所有痛苦都转移给他。林默没躲,他承接了,像承接一段没有异常处理的代码,跑崩了也得硬扛。
到医院,产科大夫是个年轻姑娘,戴口罩,只露一双眼睛,冷静得像台服务器。她检查完,说:“开三指了,进产房。”
产房的门是单向的,只进不出,不支持断点调试。林默被拦在外面,护士说:“家属等着,有事会叫。”
门关上,红色“手术中“的灯亮起,像Linux终端的提示符,等待输入,但林默输入不了任何东西。他只能等,等一个return,等一个callback,等一个无法预知的result。
小张去买水,买吃的,买所有能买的东西。林默坐在长椅上,手里攥着那片反渗透膜的快递袋,攥得手心出汗,把快递单上的字迹洇开了。他看着单子上模糊的发件地址,忽然想起小张在火车上说的梦——梦见他没去深圳,留在西安修自行车。
那个梦不是假的。那个梦是另一个版本的人生,是没被注释掉的代码,是真实存在的平行宇宙。在那个宇宙里,小张没有这瓶药,没有这片膜,没有#06#。
在这个宇宙里,林默有。
他掏出手机,在记事本里敲下一行字:
“if baby_alive: commit()
else: panic_and_continue()“
然后他点了保存,文件名是“today_no_rollback.md“。
产房里传来陈曦的叫声,撕心裂肺,像一段跑不通的代码在嘶吼。李芳坐在旁边,手里攥着一串佛珠,嘴里念念有词。小张回来,递上一瓶冰峰,林默没接,他说:“等结果。“
“什么结果?“
“编译结果。“林默盯着产房门,“看是pass,还是fail。“
小张愣了愣,然后笑了,笑得眼泪出来:“林哥,你魔怔了。生孩子不是跑测试,没有pass fail,只有live die。“
“那就live。“林默说得咬牙切齿,像在对编译器下死命令,“必须live。“
时间变得粘稠,像老周的西凤酒。林默分不清过了多久,十分钟,还是十小时。他只知道手机没电了,反渗透膜的快递单被攥成了纸浆,小张的冰峰喝完了,李芳的佛珠断了线,珠子滚了一地。
然后,门开了。
护士抱出个襁褓,说:“六斤四两,女孩。产妇出血有点多,但稳住了。“
林默没先看孩子,他问:“陈曦呢?“
“观察室,醒了就能出来。“护士把孩子塞他怀里,“先抱抱你闺女,她等着验收呢。“
那团小东西皱巴巴的,红通通的,像刚从GitLab里clone下来的初始项目,什么都没有,但充满希望。她闭着眼睛,睫毛湿哒哒的,小嘴无意识地咂动,像在找奶,也像在找代码里的第一行注释。
林默抱她,手抖得像第一次push到master分支。他低头,在她额头亲了一下,亲得小心翼翼,怕把她亲崩了。
“你好。“他小声说,“我是你爸,一个没有回档功能的程序员。“
小东西没理他,她只是哭,哭得理直气壮,哭得毫不讲理。那哭声是新的,是原始的,是未经任何框架封装的生命本身。
林默想起#06#,想起那片反渗透膜,想起小张的循环,想起陈曦的Excel表,想起老周的老寒腿,想起李芳的佛珠,想起楼下那盘没下完的棋。
所有这些,都是为了这一声哭。
产房门又开了,陈曦被推出来,脸色白得像纸,但眼睛是亮的。她看着林默,又看着他怀里的孩子,张了张嘴,没发出声。
林默走过去,蹲在她床边,把孩子的小脸凑过去。她亲了一下,亲得用尽全身力气。
“长得像你。“她气若游丝,“丑。“
林默笑了,笑得眼泪掉在孩子脸上,孩子哭得更凶。
李芳在旁边抹泪,说:“哭声响,好养活。”
小张站在角落,也抹泪,说:“上线了,没宕机。”
护士催:“让让,产妇要回病房。”
林默抱着孩子让开,忽然想起什么,问小张:“三轮摩托呢?”
“还在校门口。”小张擦擦鼻子,“保安说要拖走。”
“那就让它拖。”林默说,“咱有新座驾了。”
他举起怀里的闺女,像举起一个新项目,一个新版本,一个没有#06#,没有注释,也没有TODO的人生。
项目名称:小绿萝。
版本号:1.0.0。
发布状态:已上线,不可回滚。
最新网址:www.00shu.la