一

零点四十分,我还坐在电脑前。不是加班,是自己的一个小工具出了 bug——改了三处,回归测试跑了五遍,最后一查,错在两年前写下的一行代码旁边。那行注释写着:"临时方案,以后再优化。"以后,一晃就是两年。程序员的世界里,"以后"是世界上最长的时态。

我把椅子往后推了推,没关显示器。屏幕上那片幽幽的亮,这个年纪看久了,眼睛会发涩,会流一点不争气的水。四十五岁的眼睛不太经熬了。年轻时能一口气写到凌晨三点,现在十二点一过,身体就开始跟我谈判:腰椎说它酸了,肩颈说它僵了,连胃都来凑热闹。

谈判结果通常是各退一步:再写二十分钟,然后去擦一张唱片。

其实那个 bug 改完也就十行的事。可我盯着屏幕的时候忽然想到,这十行再过两年回头看,八成还是会被我自己骂"临时"。代码和人一样,永远处在"以后再优化"的状态里。这么想的时候有点丧,但我自己先笑了——丧归丧,笑是真诚的。

二

擦黑胶这个动作,我做了很多年,始终没觉得腻。防静电刷贴着纹路轻轻走,吱——极轻的一声,像把一整天的噪音都扫掉了。唱片从封套里抽出来,对着台灯斜一下,能看到反光里细细的纹路,一圈一圈。说那是时间的年轮,这话俗了,但站在灯底下看的时候,人确实会走神。

架子上的唱片不算多,几十张,都是慢慢攒的。买得起的时代买不起,买得起的时候某些版又难寻了,就这么一直错着。前阵子收到一张再版的爵士,撕塑封的时候居然有点紧张,像拆一份迟到多年的礼物。中年人的快乐就是这么便宜,一件小事能高兴一个晚上。

唱针落下去之前,有三秒钟是安静的。手悬着,唱臂慢慢移过去,屋子里什么声音都没有。这三秒我特别喜欢——音乐还没来,一切可能都还在。可能是某段小提琴,可能是爵士鼓的刷子擦过镲片,也可能是一张其实已经听出问题、但我假装没发现的旧唱片。

针尖搭上纹路的瞬间,"啪"很轻的一声,音乐就起来了。David Garrett 拉得再快,起弓也是慢的,像一个人先深吸一口气。我常想,这三秒的安静,可能比音乐本身还金贵。人到了这个岁数,能安安静静等一件事发生的时刻,不多了——邮件要秒回,消息要秒回,连等个电梯都嫌慢。只有这三秒,谁也催不了我。

三

白天通勤,地铁上人人低头,我也一样。有一天突然抬头,看见车窗外隧道壁上的灯一根根往后飞,像老式电影胶片的齿孔。那一刻我居然有点高兴——你看,干这行久了,看什么都是介质。灯是帧,黑胶是模拟信号,生活大概就是一段没压好的音频:有底噪,有毛边,但也因此真实。数字音频干净得太彻底了,干净得没有呼吸。

天气一冷,人反而清醒。夏天贪凉,空调、冰可乐,整个人昏昏沉沉;现在夜里下楼倒垃圾,冷风一激,倒觉得被冲刷了一遍。楼下的猫还蹲在老地方,看见我也不跑,就那么看一眼,继续想它的事。我们谁也不打扰谁,挺好。

晚上泡一杯茶,不是什么好茶,就是普通的绿茶,叶子在杯子里浮浮沉沉,最后慢慢沉底。年轻时喝茶是为了醒着写代码,现在喝茶就是喝茶,为了那点热气糊在脸上的感觉。改变是从哪一年开始的,说不清。就像唱片上的第一道划痕,你从来不知道它是哪天出现的,等发现时,它已经在那儿了。

耳机里最近常放的是一张古典跨界,小提琴和电子节拍各走各的,居然不吵。年轻时我会较真,说这不纯;现在觉得,不纯就不纯吧,好听就行。人到中年,对很多事的判断都从"应该"变成了"也行"。不知道这算宽容,还是懒得较劲。反正两个说法,我都接受。

睡前偶尔翻几页书。说是翻,常常一页没看完眼皮就打架。年轻时觉得这是退步,现在想通了:书不会跑,我也不会,急什么。有时候也自嘲,一个写了二十年代码的人,最大的收获不是什么技术,而是终于学会了"等"——等编译,等部署,等一段旋律走到副歌,等茶叶慢慢沉底。机器教我的耐心,比人教的多。

四

今晚那张唱片放完了。唱臂抬起来,回到架子上,咔哒一声。屋子里重新安静下来,只剩茶的热气往上升。显示器还亮着,那行"临时方案"还杵在屏幕上。

我把光标移过去,删掉"以后再优化",改成了一句新的:明天再说。

明天的我,大概也会原谅今晚的我。