
张明远在键盘上敲下最后一行代码的时候,窗外的夕阳正好落在他那台用了八年的显示器上,把整个屏幕染成了橘红色。
他盯着屏幕看了很久,然后缓缓地靠在椅背上,长长地呼了一口气。
// 感谢你看到这里。
// 这是我写的最后一行代码。
// 如果你正在读这段注释,说明这个程序运行成功了。
// 那么,我的女儿,生日快乐。
张明远今年四十七岁,是一名普通的软件工程师。准确地说,他曾经是一名软件工程师——三个月前,他被确诊为胰腺癌晚期。
医生说他最多还有半年。
张明远的女儿叫张小溪,今年十八岁,马上就要参加高考。
他一直没有告诉女儿自己的病情。不是不想说,而是不知道怎么说。每次小溪放学回家,兴高采烈地跟他讲学校里的事情,他都会笑着听,然后在她转身的时候,偷偷地看一眼放在抽屉里的诊断报告。
小溪从小就想当一名程序员。她五岁的时候,张明远教她用Logo语言画了一只海龟;十岁的时候,她用Scratch做了一个小游戏;十五岁的时候,她已经能独立开发简单的手机App了。
“爸爸,等我考上大学,学了计算机,我也要像你一样写代码。”小溪经常这样说。
张明远每次都笑着点头,心里却想着:你要比我强才行。
确诊后的第一个月,张明远开始秘密地做一个项目。
他每天晚上等小溪睡着后,就打开电脑开始写代码。他不是在写一个普通的程序——他在写一个”时间胶囊”。
这个程序的逻辑很简单:
但实现起来并不容易。张明远需要:
对于一个健康的人来说,这可能只需要一周的时间。但对于一个每天要吃止痛药、经常因为化疗而虚弱得无法坐起来的癌症晚期患者来说,这是一个巨大的挑战。
“老张,你最近怎么总是熬夜?”妻子李芳在厨房里问。
“公司有个项目赶进度。”张明远头也不抬地说。
他不想让李芳知道。不是因为不信任她,而是因为他知道,如果李芳知道了,她一定会劝他休息。而他不想休息——他只剩下不多的时间了,他必须把这个做完。
有一天深夜,他正在调试代码,突然感到一阵剧烈的腹痛。他弯下腰,等疼痛过去后,继续写代码。
屏幕上的光标闪烁着,像是在催促他。
他看了看时间——凌晨三点。他必须在早上六点之前把这段代码写完,因为七点小溪就要起床了,他需要假装什么都没有发生。
项目进行到第二个月的时候,张明远的身体状况急剧恶化。
他开始频繁地出入医院,每次化疗后都要在床上躺好几天。但他依然坚持写代码——有时候在病床上用笔记本电脑写,有时候在医院的走廊里用手机写。
“张先生,您需要多休息。”主治医生王大夫说。
“我知道,”张明远笑了笑,”但我有一个项目必须完成。”
“什么项目这么重要?”
“给我女儿的生日礼物。”
王大夫沉默了一会儿,然后说:”那我给您开一些不那么让人犯困的止痛药。”
张明远感激地点了点头。
小溪十八岁生日的前一周,张明远终于完成了整个项目。
他坐在电脑前,从头到尾测试了一遍。视频能正常播放,交互功能正常,报告生成器也工作正常。他甚至在最后加了一个彩蛋——如果小溪在某个特定的问题上输入”爸爸我爱你”,屏幕上会出现一个动画效果:满天星星中,有一颗最亮的星星在闪烁,旁边写着”爸爸也爱你”。
他满意地看着屏幕,然后打开了项目的部署脚本。
deploy.sh
回车。
上传进度条缓慢地移动着。张明远的心跳加速了——不是因为紧张,而是因为他知道,一旦部署完成,他的最后一个任务就结束了。
“上传完成。部署成功。”
屏幕上出现了绿色的提示信息。
张明远靠在椅子上,闭上了眼睛。他感到一种前所未有的轻松。
小溪十八岁生日那天,天气很好。
张明远强打精神,和小溪一起吃了早餐。李芳做了一桌子菜——小溪最爱吃的红烧排骨、糖醋鱼、西红柿炒鸡蛋。
“爸爸,你今天怎么不吃?”小溪夹了一块排骨放到张明远碗里。
“我吃,我吃。”张明远笑着说,但他的筷子几乎没有动过。
吃完饭,张明远从口袋里掏出一张卡片递给小溪。
“生日快乐,小溪。”
小溪接过卡片,打开一看,上面只有一行字:
“打开你的电脑,访问:happybirthday-xiaoxi.com”
“这是什么?”小溪疑惑地看着张明远。
“打开看看就知道了。”
小溪跑回房间,打开了电脑。
几秒钟后,房间里传来了小溪的声音:”爸爸?这个网站……”
张明远慢慢走到小溪的房间门口。
屏幕上,一个视频正在播放。视频里是张明远的脸——但比现在年轻一些,精神也好一些。
“嗨,小溪,”视频里的张明远说,”如果你看到这个视频,说明今天是你十八岁的生日。首先,生日快乐。”
“我知道你可能有很多问题——爸爸为什么录这个视频?爸爸是不是有什么事瞒着我?”
“别担心,爸爸没事。我只是想,在你成年的这一天,跟你说一些平时不好意思当面说的话。”
视频继续播放。张明远讲了小溪出生那天的事情,讲了她第一次叫”爸爸”时的情景,讲了她学走路时摔倒了又爬起来的样子,讲了她第一天上学时哭着不肯松开他的手。
小溪的眼泪流了下来。
视频的最后,屏幕上出现了张明远写的那段代码注释:
// 感谢你看到这里。
// 这是我写的最后一行代码。
// 如果你正在读这段注释,说明这个程序运行成功了。
// 那么,我的女儿,生日快乐。
小溪转过头,看着站在门口的张明远。
“爸爸……”
张明远走过去,把小溪抱在怀里。
“爸爸,你是不是生病了?”
张明远沉默了一会儿,然后说:”是。但爸爸没事。”
“你骗人。”小溪哭了,”你瘦了好多,你都不怎么吃饭了……”
“小溪,”张明远轻轻拍着她的背,”爸爸想告诉你,不管发生什么,你都要好好生活。去上大学,学计算机,写你自己的代码。”
“爸爸的最后一行代码写完了,但你的代码才刚刚开始。”
那天晚上,小溪在电脑前坐了很久。
她把那个程序从头到尾体验了一遍,回答了所有的问题,完成了所有的小任务。最后,程序生成了她的”成长报告”——上面记录了她从出生到十八岁的每一个重要时刻,配有照片、视频和张明远手写的文字。
报告的最后一页,是一段话:
“小溪,爸爸这辈子写过很多代码。有些代码运行得很好,有些代码有Bug。但你,是爸爸这辈子写过的最好的程序。没有Bug,不需要调试,从你出生的那一刻起,就完美地运行着。
爸爸爱你。永远。”
小溪关上电脑,走到张明远的房间。
张明远已经睡着了。他的脸色很苍白,呼吸很轻,但嘴角带着微笑。
小溪在他床边坐了下来,轻轻握住了他的手。
“爸爸,”她低声说,”我会写很多很多代码。但最好的那一行,一定是和你有关的。”
窗外,月光洒在安静的房间里。显示器上的光标还在闪烁,像一颗永不熄灭的星星。
(完)