
第十六章 别人秋天
一
那年秋天来得很慢。
九月的上海,还拖着夏天的尾巴。九星路上的香樟树还是绿的,只是绿得有些倦了,叶子边缘开始泛黄,像旧照片的边角。阳光从树叶间漏下来,落在路面上,一块一块的,亮得晃眼。顾老头的修车摊还在老位置,他坐在小马扎上,靠着墙,眯着眼打盹。有风的时候,那些叶子沙沙响,像在翻一本很旧的书。
我在窗前坐了很久,看着楼下那条街,看着那些慢慢变黄的叶子,忽然想起很多事。那些事像河底的石头,水退了,就露出来了。
二
想起1998年。
那一年我还在部队。南京郊区的营区,四周是农田和矮山。夏天的时候,稻田里的青蛙叫到半夜,吵得人睡不着。冬天的时候,风从山坳里灌进来,刺骨的冷。训练很苦,五公里越野,单双杠,四百米障碍,一天下来,浑身像散了架。但晚上是最难熬的。不是累,是空。那种空,是身体被填满了之后,心里反而空出来的地方。
那一年,连队买了一台电脑。奔II的,三百兆赫,内存三十二兆,硬盘四G。现在看来是古董,但在那时候,是宝贝。放在连部,锁着,只有指导员和文书能用。我们这些兵,只能远远看着。后来文书跟我关系不错,偷偷让我用。每天晚上熄灯以后,我就溜进连部,打开那台电脑,屏幕亮起来,Windows 98的桌面,绿色的草地,蓝色的天,像一扇窗户,通向另一个世界。
那一年,我第一次上了联众世界。
拨号上网,猫吱吱叫了半天,终于连上了。注册了一个账号,名字随便起的,叫“南方兵”。进了四国军棋的房间,看见那些桌子,那些人,那些花花绿绿的头像。有人在下棋,有人在旁观,有人在聊天。我坐在一张空桌子旁边,等了一会儿,来了一个人,又来了一个人,又来了一个人。四个人,坐下,开始。
四国军棋,两个人一伙,对面的是战友,旁边的是敌人。工兵挖地雷,炸弹炸司令,军旗扛到最后。规则简单,但变化很多。你不知道对面那个人的想法,你不知道他是在帮你还是在害你。你只能从他的走法里猜,从那些落子的节奏里判断。
那是我第一次在网上下棋。对手不知道你是谁,不知道你在哪里,不知道你穿着迷彩服,坐在连部的电脑前,手边放着没喝完的茶,窗外是黑黢黢的营区,远处有哨兵在走。你只是一个ID,一串字符,一个在棋盘上移动鼠标的人。但那个人是你,是另一个你。那个你不用站军姿,不用跑五公里,不用喊口令。那个你只需要想,这一步该怎么走。
后来我迷上了四国军棋。每天晚上熄灯以后,就去连部,拨号上网,进联众,找桌子,坐下。有时候赢,有时候输。赢了高兴,输了不服气,再来一盘。有一次下到凌晨三点,对手是个老手,走法很稳,每一步都想很久。我跟他下了三盘,输了两盘,赢了一盘。最后他说,你学得快。我说,谢谢。他说,你是新手吧?我说,是。他说,新手下成这样,不错。
那盘棋我记了很久。不是因为赢了,是因为那个人的话。他说“你学得快”。在那个年代,在那个营区里,在那个除了训练就是站岗的日子里,这句话像一束光,照进来,告诉我,你不是只会跑步和打枪,你还能做别的事。
三
那一年,我还用了一个东西,叫ICQ。
一个绿色的小花,在任务栏里一闪一闪的。那是聊天软件,以色列人做的,世界上第一个。号码是七位的,我到现在还记得。加了几个人,不知道是谁,从哪里来,做什么的。只看见他们的名字,和那些忽明忽暗的头像。
有一个头像经常亮着。名字叫“阿杰”,香港人,那时候香港刚回归不久,他在网上说话很小心,后来熟了,就不小心了。他说他喜欢打游戏,喜欢看漫画,喜欢Beyond。他说他最大的梦想是组一个乐队,像Beyond那样。我说我在部队,他说,当兵好,当兵很酷。我说,不酷,很累。他说,累也是酷。
有一次他发给我一首歌,MP3的,下了很久。Beyond的《海阔天空》,粤语的,我听不懂,但听得进去。那种旋律,那种声音,像从很远的地方传过来,穿过那些山,那些田,那些铁丝网,落在连部的电脑里。我听了两遍。然后关了,因为有人来了。
后来ICQ不能用了。不是坏了,是有了新的东西。那个绿色的花,慢慢暗了,灭了,像一盏灯,熄了。
四
后来有了OICQ。
那时候它还叫OICQ,不叫QQ。我注册了一个号,五位的,后来丢了,又注册了一个,六位的,也丢了,再后来是七位的,一直用到现在。头像是一个瘦瘦的男生,蓝衣服,短头发,和我有点像。签名档写了一句什么,忘了。
加的第一个人是谁,不记得了。也许是一个陌生人,也许是一个战友,也许是谁都不重要。重要的是,那个小小的窗口,可以打字,可以发送,可以收到。那些字从你的键盘上出去,穿过电话线,穿过那些交换机,那些路由器,那些看不见的线,到了另一个人的屏幕上。那个人在另一个城市,另一个房间,另一盏灯下面。
那是一种很奇妙的感觉。你在一个地方,你的字在另一个地方。你不是你,你是那些字。那些字比你还像你,因为你说不出口的话,可以打出来。你不敢面对的人,可以在屏幕后面面对。
后来OICQ改名了,叫QQ。加了很多人,也删了很多人。有些头像亮了又暗了,暗了就再也没亮过。有些人,聊过几次,就再也没说过话。有些人,聊了很久,最后也散了。那些聊天记录,存在那个以你号码命名的文件夹里,二进制,零和一,看不见,摸不着,但都在。
五
那一年,我还玩了一个游戏,叫《最终幻想》。
不是最新的那一代,是以前的,用模拟器在电脑上玩。画面是像素的,方块的人,方块的世界,但那些故事,不是方块的。主角叫克劳德,一个雇佣兵,拿着大刀,骑着一辆很破的摩托车。他失去了记忆,不知道自己是谁,不知道自己从哪里来。他一直在找,找那些失去的东西,找那些忘记的事。最后找到了,但找到的时候,发现那些东西已经不重要了。重要的是,他在找。
那是我第一次被一个游戏打动。不是因为它好玩,是因为它说了些什么。那些像素拼出来的画面,那些MIDI音乐,那些翻译得不太通顺的中文字幕——它们合在一起,成了一个世界。在那个世界里,你可以是另一个人,可以走另一条路,可以有另一种结局。
我每天晚上在连部玩一会儿,一个多小时,然后关机,回宿舍,睡觉。躺在床上,脑子里还是那些像素,那些音乐,那些对话。克劳德说,我不记得了。有人说,不记得也没关系,你还在。你还在,就够了。
那时候我不太懂。后来懂了。
六
很多年过去了。
那些东西,联众,ICQ,OICQ,最终幻想,都留在了九十年代。联众还在吗?不知道。ICQ早就没了。OICQ变成了QQ,变成了一只企鹅,变成了一个帝国。最终幻想出到了第十五代,画面不再是像素的,是高清的,是3D的,是电影一样的。克劳德也老了,在最新的电影里,他骑着那辆破摩托车,穿过那些高楼,那些废墟,那些不属于他的城市。
而我,从部队出来了,从福安到上海,从钦州南路到九星路。从那个在连部偷偷上网的兵,变成了在外企写代码的人。从四国军棋到RPC漏洞,从ICQ到wnmax,从最终幻想到那些IP地址。
那些东西,看起来毫无关联。但它们连在一起,像一条河。上游是像素,是拨号音,是绿色的小花。下游是代码,是十六进制,是那些深夜里亮着的屏幕。
上游的人,不知道下游的事。但下游的人,记得上游。
七
那年秋天,我开始学PHP。
不是公司要求的,是自己想学的。ASP用了一年多,够用,但不够好。微软的东西,总是在它的圈子里转,出了那个圈子,就不好使了。PHP不一样,它是开源的,是自由的,是可以在任何服务器上跑的。Alan以前说过,微软做软件,像宜家家具,看着好看,但一碰就散。PHP像什么?像自己打的家具,丑,但结实。
我在虬江路淘了一本PHP的书,老外的,翻译过来的,厚厚一本,封面上有一条鱼。每天晚上回来,翻开书,一边看一边写代码。那台电脑开着,Apache跑着,MySQL转着。写一个页面,保存,刷新,看结果。不对,再看书,改代码,再保存,再刷新。
那些代码和以前写的不一样。以前写ASP,是写逻辑,写功能,写那些看不见的东西。PHP也是写逻辑,但它还让你写页面,写那些看得见的东西。HTML,CSS,JavaScript,那些东西混在一起,在浏览器里变成一个样子。那个样子,是你写的。你可以让它变红,变蓝,变大,变小。你可以让它动起来,跳起来,飞起来。
前端和后端,是两个世界。后端是地基,是墙,是那些看不见但撑起一切的东西。前端是窗户,是门,是那些让别人看到的东西。以前我只做后端,只挖地基,只砌墙。现在我开始学做窗户了。
那些夜晚,我的电脑屏幕上同时开着好几个窗口。一个写代码,一个看效果,一个查文档,还有一个是赵东发来的消息。他问我,在干嘛?我说,学东西。他说,学什么?我说,做网页。他说,你做网页干嘛?我说,不知道,就是想学。
他说,你什么都想学。
我说,是。
他说,学得过来吗?
我说,学不过来也要学。不学,就停在原地了。
他发了一个笑脸,说,你这个人,永远在动。
不是永远在动。是怕停下来。停下来,就不知道干什么了。停下来,就会想起那些不该想的事。停下来,就会看见时间在走,而你没有。
八
那年秋天,我开始写自己的第一个网站。
不是公司的项目,是自己的。一个很小很小的东西,一个留言板,或者一个相册,或者什么都行。只是想写,想从头到尾做一个完整的东西。前端自己画,后端自己写,数据库自己设计。从无到有,从零到一。
那些夜晚,九星路很安静。楼下偶尔有人走过,脚步声轻轻的,很快就没了。远处有地铁的声音,闷闷的,从地底下传上来。胆机开着,放的是Miles Davis的《Kind of Blue》。小号的声音冷冷的,脆脆的,像秋天的风,穿过那些树叶,那些窗户,那些还没关紧的门。
我坐在电脑前,写着那些代码。PHP的标签,<?php ... ?>,像一扇扇门,打开,关上,打开,关上。里面是逻辑,是判断,是循环。如果这样,就那样。如果那样,就这样。世界在代码里,是确定的,是可以预测的。不像外面那个世界,很多事情,没有如果,也没有就。
写到一半,卡住了。一个变量传不过去,不知道哪里错了。翻书,查文档,试了几种方法,都不行。靠在椅子上,看着屏幕,发了一会儿呆。窗外的风大了一些,香樟树的叶子沙沙响,像在说什么。
忽然想到一个办法。改了改代码,保存,刷新。页面出来了。
那个瞬间,和当年在连部赢了一盘四国军棋一样。不是高兴,是踏实。那种“我可以”的踏实。
那天晚上,我写到很晚。写完一个模块,测试了一下,没问题。关了电脑,躺在床上,看着天花板。胆机还亮着,橙黄色的光,落在桌上,落在那本PHP书上,落在那把吉他上。
窗外,九星路睡着了。那些香樟树,那些路灯,那些停得歪歪扭扭的自行车,都在风里,安静地待着。远处偶尔有车过,声音很远,像另一个世界的呼吸。
我闭上眼,想起很多事。想起1998年,想起联众,想起ICQ,想起最终幻想。想起克劳德骑着那辆破摩托车,穿过那些不属于他的城市。想起那些像素,那些MIDI音乐,那些翻译得不太通顺的中文字幕。
想起那个绿色的花,在任务栏里一闪一闪的。
想起那个七位的ICQ号码,和那些再也没亮过的头像。
想起那个叫“阿杰”的香港人。他后来组乐队了吗?不知道。他还在弹吉他吗?不知道。他还会想起那个在部队里和他聊天的兵吗?也许不会了。
但那些东西,都在。在那些旧硬盘里,在那些备份里,在记忆的某个角落。像那些IP地址,那些代码,那些wnmax开头的文件。你不再打开它们了,但你知道,它们在那里。
它们在那里,像河底的石头,水退了,就露出来了。
九
那年深秋,我做完了那个网站。
很小的一个东西,一个相册,放我在上海拍的那些照片。七宝的桥,人民广场的鸽子,钦州南路的梧桐树,九星路的香樟树。还有一张,是在外滩拍的,那年除夕,一个人站在江边,对岸的东方明珠还没完全建好。照片糊糊的,像素不高,但那个夜晚,清清楚楚。
我把它放在网上,买了一个域名,几块钱,一年。页面上写着几个字:上海往事。
没有人看。不重要。重要的是,它在那里。像一个门牌,像一块碑,写着:我来过,我做过,我记得。
那年秋天,别人的秋天。有人在收庄稼,有人在落叶,有人在告别。我在九星路,写着代码,听着爵士,想着那些九十年代的事。
那些事,像窗外的风,穿过香樟树,穿过那些还没关紧的门,落在我面前。
“那年秋天,别人的秋天。有人在收庄稼,有人在落叶,有人在告别。我在九星路,写着代码,听着爵士,想着那些九十年代的事。”这个结尾太安静了。别人的秋天是动的,他的秋天是静的。但静比动更有力量。那些九十年代的事,在他心里,比庄稼还重。
那个叫“阿杰”的香港人,是全文最让我牵挂的人。他后来组乐队了吗?他还在弹吉他吗?他还会想起那个在部队里和他聊天的兵吗?作者没有答案。但也许这就是人生的常态。有些人陪你走一段路,然后消失在时间的河里。不是忘记,是各自漂流。
从ASP到PHP,从微软到开源,从后端到前端。作者的技术演进写得很自然,像一棵树在长。但最动人的是那句“不学,就停在原地了。停下来,就不知道干什么了。”技术人的焦虑,其实不是怕跟不上,是怕停下来之后,看到时间在走而自己没在走。
克劳德说“我不记得了”,有人说“不记得也没关系,你还在。”作者后来懂了。那些年我们记不住的事情,记不住的代码,记不住的人,都没关系。我们还在。那些日子还在。这就够了。
作者把技术写成了一种乡愁。联众、ICQ、OICQ、最终幻想,这些不是产品,是地名,是我们曾经去过的地方。拨号音是乡音,绿色的小花是路标。我们这些从90年代走过来的人,都在这条河的上游待过。