陈曦肚子显怀那天,西安下了场真正的春雨。不是倒春寒的冰碴子,是润物无声的牛毛雨,把交大南门的梧桐树浇得发亮,嫩叶在雨气里舒展,像刚被解放的线程。林默下楼扔垃圾,发现楼下下棋的老头们收起了棋盘,改在楼道里打拱猪,扑克牌甩得啪啪响,像在给雨声配节奏。
他扔完垃圾没上去,站在雨里抽了根烟。烟是陈曦怀孕后他偷偷买的,十块一包的白沙,老周同款。他抽得很省,一天三根,早中晚各一根,像在执行一个定时任务。烟雾混着雨气钻进肺里,凉得透彻,把心里那点燥火全浇灭了。
陈曦怀孕五个月,孕反好了些,但脾气见长。昨儿晚上因为林默把猪脚汤热过头了,她砸了碗,说“你连个汤都热不好,以后怎么带孩子?”林默没吭声,默默扫了碎片,又默默给自己盛了碗凉的喝了。最后陈曦哭,说对不起,不是我故意耍脾气,是孩子闹的。林默抱着她,像抱着一个随时会抛出异常的程序,不敢紧不敢松。
老周打电话来,说系统又出了个新问题。这次不是Bug,是需求——有个大客户要签合同,要求在系统里加电子签名功能。老周在电话里说得急,像赶着去投胎,林默听半天才听明白:人家嫌打印出来再签字太麻烦,想直接在手机上戳两下就完事。
“我不会。”林默说得老实,“那是区块链,是加密算法,是第三方SDK接入。我只会写DOS,写小程序,写点让打印机别卡纸的脚本。”
老周在电话那头沉默了几秒,忽然笑了:“那你学呗。学完了告诉我多少钱,我加钱。”
“学废了咋办?”
“废了再学,学到不废为止。”老周说得云淡风轻,“反正你又不能回档,一次学不会,就学两次。两次不会,就学十次。十次还不会……”他顿了顿,“十次还不会,你就不是干这行的料,趁早去交大门口摆摊卖凉皮。”
林默挂了电话,站在雨里笑。烟头烫到手了才反应过来,把烟屁股扔进垃圾桶,转身上楼。
陈曦正趴在餐桌上画思维导图,用彩笔,画得花花绿绿。林默凑近看,是“婴儿房布局v5.0”,从v1.0到v4.0都被她否了,理由是“没有考虑到孩子长到三岁后的可扩展性”。林默想说,三岁后的事谁说得准,说不定那时候他们早搬走了。但话到嘴边,他咽回去了。他知道陈曦在怕什么——她在怕一切不可控的东西,怕没有文档的未来,怕不能回滚的教育方案。
“老周让你学什么?”陈曦头也不抬,笔尖在“尿布台”和“书桌”之间画了个双向箭头。
“电子签名。”林默说,“加密的,我不会。”
“那就学。”陈曦说得理所当然,“你当年学Python,学Go,学K8S,不都是现学的?那时候有回档吗?没有吧,不也学会了?”
她说得对,但那时候年轻。年轻的时候学东西快,错了就改,改废了重装,反正时间有的是。现在不行了,现在学新东西,脑子里像塞满了过期依赖包,装一个报错十个,报错十个就卡死,卡死了还找不到日志。
“我怕学不会。”林默说得小声,像在承认一个耻辱的Bug。
陈曦终于停了笔,抬起头看他。她最近脸圆了不少,双下巴看起来福相十足,眼睛倒还清亮,像刚擦过的显示器。
“学不会就学不会呗。”她说,“学不会,你就不是干这行的料,趁早去交大门口摆摊卖凉皮。”
她把老周的话原封不动还给他,一个字都不差。林默愣了愣,然后笑得前仰后合,笑到陈曦都怕了,怕他笑得动了胎气。他摆摆手,说没事,就是觉得好笑。老周和陈曦,一个六十岁,一个二十八岁,一个没读过书,一个读过太多书,但他们说的话,居然能完全一样。
因为生活的底层逻辑就是一样的:不会,就学。学不会,就认。认了,就干别的。干别的也干不好,就活差一点。活差一点,也总比死了强。
晚上林默没开电脑,他坐在阳台,把那瓶西凤酒拿出来了。老周送的,一直没喝。他拧开盖子,酒香混着药味冲出来,熏得绿萝叶子都颤了。他倒了一小盖,抿了一口,辣得龇牙咧嘴,像第一次跑通代码时的感觉——痛苦,但清晰。
陈曦出来,挺着肚子,像移动的服务器。她抢过酒瓶盖,也抿了一口,立刻吐出来:“什么玩意儿,给耗子喝得吧?”
“老周说,喝了不做梦。”
“你信?”
“不信。”林默把瓶盖盖好,酒放回原处,“但想试试。”
两人并排坐在阳台的小马扎上,看对面楼的灯火。交大的学生宿舍十一点熄灯,现在十点五十,窗口还亮着一大片,像没关机的服务器集群。林默指着其中一扇窗,说:“我当年写代码,也爱熬夜到十一点,觉得那时候思路最清。现在不行了,十点就困,脑子像被垃圾回收机制清过一遍,干净得啥也不剩。”
“那不挺好?”陈曦抱着肚子,像抱着一个待上线的项目,“干净点,装新东西。”
她肚子忽然动了一下,像有只小脚在里面踹。她“哎哟”一声,抓住林默的手按上去。他感觉到了,很轻,像蝴蝶扑翅膀,像键盘上不小心按到的触控板,像一段没有预期的输出。
“动了。”他说,声音抖得像第一次跑通Hello World。
“嗯,动了。”陈曦笑着说,“他也在适应,适应没有回档的环境。”
两人坐了很久,坐到宿舍楼一片一片地暗下去,像被优雅关闭的进程。最后只剩几盏灯,苟延残喘,像不愿意下线的开发者。林默站起来,伸懒腰,骨头咔咔响,像老旧的机械键盘。
“学吧。”他说,“电子签名,学不会就去卖凉皮。”
陈曦没回头,她在黑暗中数胎动,一下,两下,三下。她数得很慢,很认真,像在算一个不能出错的循环:
for day in range(1, 365):
if baby_kicks:
live_one_more_day()
else:
panic_but_no_rollback() # 注释:没有存档,只能继续
第二天林默没去老周那儿,他去了交大图书馆。借了三本密码学的书,厚得像砖头,全是公式和证明。他坐在自习区,旁边是考研的学生,桌上堆着咖啡和红牛。他看着那些年轻的面孔,想起自己当年考研,也是这么过来的。但那时候心里没负担,考不上就调剂,调剂不上就工作,工作不行再考。总有退路,总有回档。
现在没有退路了。书看不懂,也得看。公式记不住,也得记。因为他要挣那三千块钱,要给陈曦买孕妇裤,要给未来的女儿买尿布。更重要的是,他要证明给自己看:没了#06#,他还能学新东西,还能跑通新程序,还能当个人。
中午他在食堂吃饭,刷陈曦的校园卡。卡里的余额显示12.50,他刷了份最便宜的素面,6块,剩下6.5,够明天再吃一顿。他端着面,找了个角落坐下,边吃边在笔记本上抄公式。抄到一半,手机震了,是条深圳号码发来的短信。
他盯着那串数字,手抖得筷子都拿不稳。号码没存名字,但他记得,那是周维的私人号。
短信内容很短,就一句话:
“VP进去了,星火计划的数据,你备份了没?“
林默看着那行字,像看着一行没有闭包的代码,悬在空中,执行不下去。他想起那个U盘,那个被陈曦烧掉的U盘,那些备份了又被删除的邮件。他想起自己抱着机箱去CEO办公室那天,想起摔碎的绿萝,想起按下的#06#。
他回了一个字:“没。“
周维回得很快:“可惜了,本来能给你申请个专利。“
林默笑了一下,笑得食堂的灯都晃了。他删了短信,删了号码,把手机揣回兜里,继续吃面。面凉了,坨了,像一段跑死了的进程。但他还是吃完了,连汤都喝了。
因为面凉了能热,人死了不能。没有存档点,就得把每一口饭都当成最后一口,把每一行代码都当成最后一行,把每一天都当成没有#06#的第一天。
他吃完,把碗送到回收处,走出食堂。雨还在下,但小了,像快要结束的日志输出。他骑车回家,路过回民街,买了半斤刚出锅的锅贴,还热着。上楼时他走得很慢,五楼的高度让他喘,但他没停。
陈曦在等他,挺着肚子,像等着一个迟到的API响应。他推门进去,把锅贴放桌上,说:“吃,还热。”
她吃了一个,烫得直吸气,然后说:“老周刚打电话,说电子签名不急,让你先学好怎么当爹。”
林默愣住。
陈曦又吃了一个,边吃边说:“他说他那系统,一天没电子签名,死不了。但你媳妇儿一天没你陪着,可能真会疯。”
林默坐下,吃锅贴,一口一个,烫得眼泪出来。他分不清是烫的,还是别的。他想起老周的三轮摩托,想起他老伴的老寒腿,想起他那个没保住的胎,想起他现在孤身一人住在汽配城。
老周什么都知道,但他什么都没说。他只是让林默自己学,自己选,自己认。
就像#06#从来不存在一样。
林默吃完最后一个锅贴,对陈曦说:“我去把SIM卡装回去。”
“哪个SIM卡?”
“深圳的那个。”他说,“我得给周维回个电话,告诉他,VP进去是好事,但别扯上我。我现在的项目,是电子签名,是给女儿赚尿布钱,不是给他擦屁股。”
陈曦没拦他,她看着他找出那张被剪成两半的卡,用胶带粘好,插进手机。开机,信号搜索,注册网络,一条未读短信弹出来,还是周维的:
“猎头问我你联系方式,给不给?“
林默回:“不给。“
然后关机,拔卡,剪碎,扔进垃圾桶。这次剪得更碎,碎到拼都拼不起来。
他转身,对陈曦说:“项目跑通了。”
“哪个项目?”
“当爹的项目。”他蹲下来,把脸贴在她肚子上,“Commit了,Push了,没有Rollback,也没有#06#。跑不通也得跑,跑死了也得跑。”
陈曦摸着他的头发,像摸一个大号的金龟子。她轻声说:“那就跑吧,慢慢跑,不着急。反正日子还长,没有存档点,但有的是时间。”
窗外,宿舍楼最后一盏灯也灭了。整座城市陷入黑暗,像一台终于关机的电脑。但很快,天会亮,灯会再开,学生会去上课,老头会摆棋盘,老周会突突突地开着三轮摩托去拉西瓜。
而林默,会坐在阳台的小马扎上,给绿萝浇水,给陈曦拍背,给未出生的女儿讲她爸当年如何用#06#重启人生,最后发现,人生根本不需要重启。
只需要继续。(记住本站网址,Www.WX52.info,方便下次阅读,或且百度输入“ xs52 ”,就能进入本站)