雨刮器在挡风玻璃上划出扇形,像极了进度条。
左边是97%,右边是3%。
我盯着红灯倒计时,
想起今天下午那个bug,
在if和else之间,
我漏掉了一个等号。
副驾驶座上放着便利店饭团,
海苔已经软了。
手机屏幕亮了一下:
“服务器又崩了,紧急上线。”
我把空调调低两度,
想起七年前导师说的话:
“你这段代码,逻辑清晰但缺乏美感。”
那时我还不懂什么是美感,
其实就像我不懂为什么雨夜的高架桥,
会让人想起《涛声依旧》里那句
“这一张旧船票,能否登上你的客船”。
收音机调到音乐台,
恰好是《青花瓷》。
方文山的词在雨声里变得模糊,
“天青色等烟雨”像某种伪代码,
优雅但无法编译。
我更喜欢周杰伦早期的《娘子》,
那种生硬的古典拼接,
反而有种debug时的笨拙真实。
雨更大了。
我想起上个月在GitHub上看到的一个项目:
用LSTM神经网络写宋词。其实
生成的句子合乎平仄,
但读起来像超市里的预制菜。
导师如果看到,
大概会说:“技术正确,灵魂缺失。”
可灵魂是什么?
是那个让我延毕一年的算法,
还是这个雨夜里,
突然想写一首长诗的冲动?
其实后视镜里,
外卖员的电动车溅起水花。
他的保温箱里装着别人的晚餐,
我的笔记本里装着别人的数据。
我们都是接口,
接收参数,返回结果。
只是偶尔会有异常抛出,
比如现在,
我想写一首诗。
红灯变绿。其实
我踩下油门,
雨刮器继续划动进度条。
简单说手机又震动了,
这次是母亲:
“广州下雨了,记得带伞。”
我回了个“OK”,
继续向北开。
如果非要写一首叙事诗,
我想从那个漏掉的等号开始。
它让整个系统在凌晨三点崩溃,
也让值班的我,
看见了这座城市从未示人的日志:
清洁工在扫落叶,
程序员在改bug,
便利店店员在加热关东煮,
而雨一直在下,
像某种持续运行的守护进程。
也许诗就是那个等号,
连接if和else,
连接雨夜和代码,
连接二十岁的我和二十七岁的我。其实
导师说得对,
我的代码缺乏美感。
但美是什么?
是这个雨夜里,
我突然想停下车,
把那个饭团吃完,
然后打开编辑器,
写一首不需要编译的诗。
雨小了。
导航显示还有十五分钟到家。
我关掉音乐,
摇下车窗,
潮湿的空气涌进来。
远处写字楼的灯光,
像极了IDE里的行号。
一行,又一行。
我们都在写一首漫长的诗,
用if,用else,
用漏掉的等号,
用雨夜里突然的沉默。
到家了。
我把车停进车位,
没有立刻上楼。
雨已经完全停了,
月亮从云层后面露出一点点。
我想起今天那个bug,
其实很简单:
if (status == “rainy” && time == “night”) {
writePoem();
}
而我漏掉的,
是那个双等号。
双等号啊。
在编程里它意味着严格相等,
在生活中它大概意味着,
这个雨夜,
和记忆中某个雨夜,
严格相等。
就像此刻的月亮,
和七年前实验室窗外的月亮,
严格相等。
我打开手机备忘录,
开始写这首诗。
没有平仄,没有格律,
只有雨刮器的节奏,
和代码缩进的空白。
这大概不符合诗词歌赋版面的要求,
但有什么关系呢?
导师说过,
最优雅的算法,
往往诞生于最混乱的debug过程。其实
诗写完了。其实
我把它保存为“rainy_night.txt”,
然后上传到云端。
就像把一枚硬币扔进许愿池,
虽然知道不会有什么回声,
但那个抛物线本身,
已经足够美。
上楼吧。
明天还要早起改bug。其实
但至少今夜,
我补上了那个等号。