最后一行代码

张明远在键盘上敲下最后一行代码的时候,窗外的夕阳正好落在他那台用了八年的显示器上,把整个屏幕染成了橘红色。

他盯着屏幕看了很久,然后缓缓地靠在椅背上,长长地呼了一口气。

// 感谢你看到这里。
// 这是我写的最后一行代码。
// 如果你正在读这段注释,说明这个程序运行成功了。
// 那么,我的女儿,生日快乐。

张明远今年四十七岁,是一名普通的软件工程师。准确地说,他曾经是一名软件工程师——三个月前,他被确诊为胰腺癌晚期。

医生说他最多还有半年。

张明远的女儿叫张小溪,今年十八岁,马上就要参加高考。

他一直没有告诉女儿自己的病情。不是不想说,而是不知道怎么说。每次小溪放学回家,兴高采烈地跟他讲学校里的事情,他都会笑着听,然后在她转身的时候,偷偷地看一眼放在抽屉里的诊断报告。

小溪从小就想当一名程序员。她五岁的时候,张明远教她用Logo语言画了一只海龟;十岁的时候,她用Scratch做了一个小游戏;十五岁的时候,她已经能独立开发简单的手机App了。

“爸爸,等我考上大学,学了计算机,我也要像你一样写代码。”小溪经常这样说。

张明远每次都笑着点头,心里却想着:你要比我强才行。

确诊后的第一个月,张明远开始秘密地做一个项目。

他每天晚上等小溪睡着后,就打开电脑开始写代码。他不是在写一个普通的程序——他在写一个”时间胶囊”。

这个程序的逻辑很简单:

  1. 在小溪十八岁生日当天(也就是高考后的第三天)自动激活
  2. 显示一系列他提前录制好的视频
  3. 每个视频之间有互动环节——小溪需要回答一些问题,或者完成一些小任务
  4. 最后,程序会生成一个专属的”成长报告”

但实现起来并不容易。张明远需要:

对于一个健康的人来说,这可能只需要一周的时间。但对于一个每天要吃止痛药、经常因为化疗而虚弱得无法坐起来的癌症晚期患者来说,这是一个巨大的挑战。

“老张,你最近怎么总是熬夜?”妻子李芳在厨房里问。

“公司有个项目赶进度。”张明远头也不抬地说。

他不想让李芳知道。不是因为不信任她,而是因为他知道,如果李芳知道了,她一定会劝他休息。而他不想休息——他只剩下不多的时间了,他必须把这个做完。

有一天深夜,他正在调试代码,突然感到一阵剧烈的腹痛。他弯下腰,等疼痛过去后,继续写代码。

屏幕上的光标闪烁着,像是在催促他。

他看了看时间——凌晨三点。他必须在早上六点之前把这段代码写完,因为七点小溪就要起床了,他需要假装什么都没有发生。

项目进行到第二个月的时候,张明远的身体状况急剧恶化。

他开始频繁地出入医院,每次化疗后都要在床上躺好几天。但他依然坚持写代码——有时候在病床上用笔记本电脑写,有时候在医院的走廊里用手机写。

“张先生,您需要多休息。”主治医生王大夫说。

“我知道,”张明远笑了笑,”但我有一个项目必须完成。”

“什么项目这么重要?”

“给我女儿的生日礼物。”

王大夫沉默了一会儿,然后说:”那我给您开一些不那么让人犯困的止痛药。”

张明远感激地点了点头。

小溪十八岁生日的前一周,张明远终于完成了整个项目。

他坐在电脑前,从头到尾测试了一遍。视频能正常播放,交互功能正常,报告生成器也工作正常。他甚至在最后加了一个彩蛋——如果小溪在某个特定的问题上输入”爸爸我爱你”,屏幕上会出现一个动画效果:满天星星中,有一颗最亮的星星在闪烁,旁边写着”爸爸也爱你”。

他满意地看着屏幕,然后打开了项目的部署脚本。

deploy.sh

回车。

上传进度条缓慢地移动着。张明远的心跳加速了——不是因为紧张,而是因为他知道,一旦部署完成,他的最后一个任务就结束了。

“上传完成。部署成功。”

屏幕上出现了绿色的提示信息。

张明远靠在椅子上,闭上了眼睛。他感到一种前所未有的轻松。

小溪十八岁生日那天,天气很好。

张明远强打精神,和小溪一起吃了早餐。李芳做了一桌子菜——小溪最爱吃的红烧排骨、糖醋鱼、西红柿炒鸡蛋。

“爸爸,你今天怎么不吃?”小溪夹了一块排骨放到张明远碗里。

“我吃,我吃。”张明远笑着说,但他的筷子几乎没有动过。

吃完饭,张明远从口袋里掏出一张卡片递给小溪。

“生日快乐,小溪。”

小溪接过卡片,打开一看,上面只有一行字:

“打开你的电脑,访问:happybirthday-xiaoxi.com”

“这是什么?”小溪疑惑地看着张明远。

“打开看看就知道了。”

小溪跑回房间,打开了电脑。

几秒钟后,房间里传来了小溪的声音:”爸爸?这个网站……”

张明远慢慢走到小溪的房间门口。

屏幕上,一个视频正在播放。视频里是张明远的脸——但比现在年轻一些,精神也好一些。

“嗨,小溪,”视频里的张明远说,”如果你看到这个视频,说明今天是你十八岁的生日。首先,生日快乐。”

“我知道你可能有很多问题——爸爸为什么录这个视频?爸爸是不是有什么事瞒着我?”

“别担心,爸爸没事。我只是想,在你成年的这一天,跟你说一些平时不好意思当面说的话。”

视频继续播放。张明远讲了小溪出生那天的事情,讲了她第一次叫”爸爸”时的情景,讲了她学走路时摔倒了又爬起来的样子,讲了她第一天上学时哭着不肯松开他的手。

小溪的眼泪流了下来。

视频的最后,屏幕上出现了张明远写的那段代码注释:

// 感谢你看到这里。
// 这是我写的最后一行代码。
// 如果你正在读这段注释,说明这个程序运行成功了。
// 那么,我的女儿,生日快乐。

小溪转过头,看着站在门口的张明远。

“爸爸……”

张明远走过去,把小溪抱在怀里。

“爸爸,你是不是生病了?”

张明远沉默了一会儿,然后说:”是。但爸爸没事。”

“你骗人。”小溪哭了,”你瘦了好多,你都不怎么吃饭了……”

“小溪,”张明远轻轻拍着她的背,”爸爸想告诉你,不管发生什么,你都要好好生活。去上大学,学计算机,写你自己的代码。”

“爸爸的最后一行代码写完了,但你的代码才刚刚开始。”

那天晚上,小溪在电脑前坐了很久。

她把那个程序从头到尾体验了一遍,回答了所有的问题,完成了所有的小任务。最后,程序生成了她的”成长报告”——上面记录了她从出生到十八岁的每一个重要时刻,配有照片、视频和张明远手写的文字。

报告的最后一页,是一段话:

“小溪,爸爸这辈子写过很多代码。有些代码运行得很好,有些代码有Bug。但你,是爸爸这辈子写过的最好的程序。没有Bug,不需要调试,从你出生的那一刻起,就完美地运行着。

爸爸爱你。永远。”

小溪关上电脑,走到张明远的房间。

张明远已经睡着了。他的脸色很苍白,呼吸很轻,但嘴角带着微笑。

小溪在他床边坐了下来,轻轻握住了他的手。

“爸爸,”她低声说,”我会写很多很多代码。但最好的那一行,一定是和你有关的。”

窗外,月光洒在安静的房间里。显示器上的光标还在闪烁,像一颗永不熄灭的星星。


(完)