手机屏幕上那行字亮着,"我在你身后。别回头。看鱼。"林奇的拇指悬在屏幕上方,能感觉到指尖下面那块玻璃的微热,来自手机运行了半天的处理器温度。他把手机慢慢收进口袋,拉链拉上,拉链头在指腹上刮出细密的纹路感。 鱼刀落下去的声音是钝的。刀刃劈开鱼头骨和案板之间那层薄薄的空气,发出沉闷的"啪",然后是一连串快速的、密集的刮擦声——刮鱼鳞。大叔的手腕转得很稳,刀背贴着鱼身从尾巴往头推,银色的鳞片像碎雪一样溅开来,落在案板的湿木面上,落在橡胶围裙的前襟上,有几片粘在水箱外壁的白塑料上反着光。 林奇的眼睛盯着那片反光的鳞片。它在水箱壁面上贴了三秒,然后被旁边氧气泵溅起的一滴水珠冲下去了,顺着塑料面滑进水里,沉到底。 "你在看什么?"苏蔓的声音从右后方很近的地方传过来。她不知道什么时候绕到了他右侧,和他并排站着,两只手插在深灰色西装外套的口袋里,肩膀微微耸着抵挡菜市场里混浊的凉气。 "看他刮鱼鳞。"林奇说。他目光没移开,但他知道苏蔓在看他的侧脸。 "然后呢?" "然后……"林奇顿了一下。杀鱼大叔把鱼翻了个面,刀背从另一侧推上去,又是碎银般的一蓬鳞片,"……我从来没用刀刮过鱼鳞。但我觉得这事儿的节奏很像git rebase。" 苏蔓没说话。林奇感觉到她的视线从他脸上移开了,移到了大叔的手上。 "你继续说。"她说。语气很平,不鼓励也不否定,像一台录音机按下记录键。 "git rebase你知道吧?把一整个分支的提交记录重新整理,压缩合并,清理掉那些乱七八糟的中间状态。你看大叔刮鱼鳞——"他指了指大叔的动作,"一刀下去,整面的鳞全掉了。干净。利落。没有中间状态。不像我写代码的时候,一个功能迭代要留三十个commit,每个commit的message都是'fix'、'fix again'、'really fix'、'finally fix'、'OMG fix'。然后squash成一个干净的commit推上去。" 大叔的刀停了。鱼翻了个身,露出雪白的腹部。刀尖从鱼鳃旁边刺进去,顺着腹腔划开,声音变了,从"唰唰"变成了"哧——",像拉开一道湿布的拉链。内脏顺着刀口涌出来,红色的、灰褐色的、银色的,在案板上堆成一小团湿漉漉的东西。大叔的手伸进去掏了一下,指甲缝里塞进了暗红色的东西。 "……你在看什么?"苏蔓的声音带着一丝很淡的笑意。 "看他掏内脏。"林奇说。他觉得自己喉咙有点干,"我可以把这个也写进段子里。杀鱼大叔掏内脏的时候,比我debug的时候果断多了。我定位一个bug要在日志里翻三小时,他定位鱼的内脏用手一摸就知道在哪儿。" 苏蔓的肩膀抖了一下。很轻,但林奇余光瞥到了。 "你刚才那些话,"她说,"如果放在台上,你觉得观众会笑吗?" "……我不知道。" "我觉得有一半会笑。"苏蔓把两只手从口袋里抽出来,交叉抱在胸前,手指关节在袖口处微微发白,"前半段'三十个commit'那段,只有程序员会笑。后半段'杀鱼比debug果断'那段,没写过代码的人也能懂。因为'定位bug'和'摸内脏'之间有一种视觉上的错位感,这种错位不需要编程知识就能感受。" 林奇偏过头看她。她站在午后的菜市场门口,背后是铁皮棚顶漏下来的一块光斑,把她的深灰色外套染成了一片暖融融的浅褐。她的眼睛眯着,因为菜市场里那股混合气味——鱼腥和卤料的碰撞——她的鼻翼微微动了一下。 "所以你是说,我那个'杀鱼比debug果断'的方向是对的?" "方向对。落点还要修。"苏蔓转过头看他,"你试试用'我'开头。" "……" "别用'写代码的人'或者'程序员'开头。用'我'。我刚才去菜市场看人杀鱼。大叔刮完鱼鳞划开鱼肚子的时候,我的手在口袋里捏了一下自己的肚子。我心想,我的人生也需要一个杀鱼大叔帮我清理一下。那些纠结了三个月的'该不该跟喜欢的人表白'、'该不该辞职'、'该不该把微信头像换成猫'——如果有个人能像大叔掏鱼内脏一样,一把把我脑子里的那些破事全掏出来扔案板上,我出双倍价格。" 林奇听完以后沉默了三秒。他那双盯着鱼的眼睛慢慢眨了一下,目光从大叔沾着鳞片的手移到了苏蔓的嘴唇上。她说话的时候嘴唇开合的幅度不大,咬字却很清晰,每个字都像用刀切过的,边缘整齐。 "第三句那个'该不该把微信头像换成猫',"林奇说,"是你编的还是真事儿。" 苏蔓的嘴角又往右边歪了一下。"真事儿。我上周纠结了四天,最后换了。换成一张橘猫。我爸给我发微信说'你什么时候养猫了',我说'没养',他说'那你这头像是偷的?'我说'对',他说'你偷东西还有脸发出来?'——"她停了一下,"这个段子我周三在开放麦讲过,十三个人笑,七个没笑,三个在玩手机。所以不是每一个'我'开头的段子都能响。" 杀鱼大叔把清理好的鱼扔进一个红色的塑料袋里,袋子哗啦响了一声,他把袋子递给旁边等着的顾客,一个穿棉袄的胖阿姨,阿姨接过袋子的时候说了句什么,大叔咧开嘴笑了一下,露出一颗缺了的门牙。 "走了。"苏蔓用下巴指了指菜市场里面,"往里走。" 林奇跟着她迈过门槛。菜市场里面的声音一下子涌上来,比站在门口的时候清晰了好几倍——卖菜的大妈在吆喝"本地小青菜两块五一斤",电子秤发出"嘀"的一声,有小孩在哭,哭声从干货区那边传过来,被一袋袋花生红枣挡住了大部分只剩一个尖细的尾音。水泥地面是湿的,很多地方汪着浅浅的水洼,深灰色的,踩下去会发出轻微的"啪唧"声。林奇的帆布鞋底很快沾了一圈暗色的水痕。 苏蔓走得不快也不慢。她的鞋跟在湿水泥地上留下的声音比较轻,因为她的鞋底花纹深,抓地力好,不像林奇的帆布鞋那样打滑。他差点在一个水洼边上趔趄了一下,右手本能地往前伸出去想要扶什么东西,但他扶空了,手指在空中抓了抓,最后靠左脚往前多迈了小半步稳住了身体。 "你平衡感不太好。"苏蔓回头看了他一眼,没停下脚步。 "我坐在电脑前的日均时长是十一个小时。" "多少?" "以前写代码的时候。"林奇追上她,"白天在公司写,晚上回家写自己的东西。有时候一天坐十二个小时。" "那你还能走路已经很了不起了。"苏蔓在一家卖鸡蛋的摊位前面停下来。摊位上整齐地码着好几排粉壳鸡蛋,排列的密度让林奇本能地想到了——数组。他脑子里跳出这个词,然后迅速按回去了。粉壳鸡蛋后面坐着一个戴毛线帽的老太太,正低头剥蒜,蒜皮在她面前堆了一小堆,白色的薄片像雪。 苏蔓拿起一颗鸡蛋,举到光线下转了转。 "你看什么?"林奇问。 "蛋壳上有没有裂缝。"苏蔓说,"观察式喜剧的第二课:你盯着一颗鸡蛋看三十秒,你就有了一个段子。因为每个人都在超市里经历过'挑了半天鸡蛋最后发现有一颗裂了'。" 她把鸡蛋放回原处,动作很轻,蛋壳和蛋壳之间没有碰撞声。 "你那个购物车段子,我昨晚回去想了一下。"林奇站在她旁边,学着她也拿起一颗鸡蛋——粉壳的,温热的手指碰到冰凉的蛋壳时,皮肤上起了一层细小的鸡皮疙瘩——"你说的'过载'那个词,它其实不只是一个词。它是……一个场景的出口。" "出口?" "就像一个函数只有一个return。你前面铺了好多东西——购物清单、牛奶、香蕉、话梅——最后那个'过载'是return。但return之后,程序就结束了。可是观众笑了之后,他脑子里还剩下什么?" 苏蔓把蛋放回去,转过身来面对他。两人之间隔着一个装满粉壳鸡蛋的塑料筐,筐的边缘有些旧了,白塑料发黄,有一小块缺了角。她的视线越过那些鸡蛋落在林奇的眼镜片上,镜片反着菜市场顶棚白色铁皮漏下来的光。 "你接着说。" "我写代码的时候会想一个问题:这个模块跑完以后,它给系统留下了什么?是占了一堆内存不释放,还是把变量清理干净了?"林奇把蛋放回筐里,指尖从蛋壳上滑开的时候带起了蛋壳表面一层细微的粉屑,"一个段子跑完以后,它给观众留下了什么?让他们笑完就完了吗?还是脑子里留了一个画面?" 苏蔓没有立刻回答。她把那颗蛋在指尖转了一圈又放回去,然后抬起头看着林奇。菜市场的嘈杂声在两人之间形成了一个短暂的真空,卖蒜的老太太剥蒜的声音"啪嗒啪嗒"地填进来,像背景里稳定的节拍器。 "你刚才看杀鱼的时候,"她说,"你脑子里留了什么画面?" 林奇想了想。"他刮鱼鳞的时候,鱼尾巴翘了一下,水溅到围裙上,那一片水渍先是深蓝色,过了几秒就淡了、干了。然后他掏内脏的时候手指上沾的那个颜色,是暗红带一点点灰的。最后他把鱼扔进塑料袋,塑料袋外面印了一行红色的字,'每天一条鱼,健康又幸福',那行字下面画了一朵很土的花。" 他说完了。苏蔓看着他,眨了两次眼。 "你记得这些?" "嗯。" "你花了多长时间观察?" "大概……从他抓鱼开始,到他把鱼装袋,四分钟。"林奇掏出手机看了一眼屏幕,"三点零四分。现在三点零七。我已经看完三分钟了。" 苏蔓的嘴角歪了一下。不是那种职业性的微笑,是真的、从里面往外冒的那种笑。她的眼睛弯了一下,眼角那几道细细的纹路又出来了。 "你是个天生的观察者。"她说,"但你不知道你是个观察者。你把你看的东西全存在脑子里,像临时变量一样堆着,不知道什么时候拿出来用。你刚才说的那些——鱼尾巴翘的角度、水渍变干的速度、塑料袋上的字——全都是素材。你从来没有在台上用过这些东西。" "……因为我一直在讲内存。" "因为你一直在讲你'想'的东西,没讲你'看'的东西。"苏蔓转身继续走。她绕过鸡蛋摊,拐进一条更窄的通道,两边是卖干货的摊位——红枣、桂圆、核桃、花生,整袋整袋地敞着口放在架子上,空气里多了一层坚果焙烤过的焦香。林奇跟在她身后,间距大概半步到一步之间,他的鞋底踩水的声音和她的鞋底踩水的声音叠在一起,形成一种不规律的二重奏。 苏蔓在一个卖干辣椒的摊子前面停了。摊主是个中年男人,正低头用剪刀剪干辣椒的蒂,剪刀一开一合,发出细密的"咔嚓咔嚓"声,剪下来的辣椒蒂落在一个纸箱里,已经堆了小半箱。他的手指被辣椒染得发红,指甲缝里全是暗红色的碎屑。 "看他的手。"苏蔓说,声音比刚才低了一些,像是怕打扰那个男人剪辣椒的专注。 林奇看过去。男人的两只手都很粗糙,指关节粗大,表皮被辣椒素浸得发亮。他的剪刀用得很快,每一剪下去就精准地切掉辣椒蒂和一小圈辣椒帽,剩下的辣椒完整无缺地滑进旁边另一个纸箱里。整个过程里他的眼睛几乎没看手,一直看着摊位外面来来往往的人,像是一种肌肉记忆已经接管了手指的动作。 "他在剪辣椒的时候在想什么?"苏蔓问。 "……他不用想。手自己在动。" "对。"苏蔓点头,"他的手像一个写好了就不会再改的脚本。这个脚本跑了多少年了?可能十年,可能十五年。他剪辣椒的时候脑子里在算今天的账,在想晚上吃什么,在想刚才那个顾客少给了一块钱他应不应该追上去。这些想象——注意,是想象,不是事实——都是你段子里可以用到的虚构。" 林奇看着那个男人的手。剪刀又"咔嚓"了十二下,剪下来的辣椒蒂掉进纸箱,发出细小的沙沙声。男人的目光扫过他们俩,停了一下,大概零点几秒,然后又移开了。 "我能不能上去跟他说话?"林奇问。 "你可以。但别问'你在想什么'。问他'这辣椒怎么卖',然后看他怎么回答。" 林奇往前迈了一步。帆布鞋在湿水泥地上发出"唧"的一声,他调整了一下重心,清了清嗓子。喉咙里干干的,菜市场的空气把他的口腔内壁也吹干了。 "老板,这个辣椒辣不辣?"他问。 男人抬起头来。他大概五十出头,头发很短,鬓角有些白了。他停下剪辣椒的手,剪刀悬在半空,辣椒蒂在刀刃上夹着没掉下来。 "这是二荆条,"他说,嗓音有点哑,像被辣椒熏过的,"香,微辣。你要是想吃得满头汗的那种,那边——"他用剪刀指了指右边,"——那堆朝天椒。那个你吃一根就能哭出来。" 林奇点头。他看着男人把剪刀重新凑到下一颗辣椒上,咔嚓,蒂落了。 "您剪这个剪了多少年了?"林奇又问。问完了才意识到苏蔓说的是"问怎么卖",他没按剧本走。但他的嘴已经张开了,话已经出去了。 男人又看了他一眼。这一眼时间长了一点,像是打量一个忽然出现在摊位前面的、不太合时宜的人。 "十几年了。"他说,"你问这个干啥?" "我……写东西的。"林奇说,"观察生活。" 男人停顿了一拍。剪刀又在半空悬了悬,然后他咧开嘴笑了一下——和刚才那个杀鱼大叔的笑不一样,这个男人的嘴咧得很小,嘴角往两边抻了抻,像是一个很久没练过的动作。 "写东西啊,"他说,"那你应该写写那边的老太太——"他用剪刀又指了指左边,林奇顺着看过去,一个穿碎花棉袄的瘦老太太正蹲在一个菜摊前面翻土豆,每一颗都拿起来捏一捏,有的放回去,有的装进自己的布兜里,装进去的土豆大概只占了翻过的三分之一,"她捏土豆的手法比你们年轻人捏手机还熟练。你写她。" 林奇愣了一下。男人已经又低下头去剪辣椒了,咔嚓咔嚓的声音接上了,像从没断过。他退回到苏蔓旁边。苏蔓抱着胳膊,下巴微微抬着,正在看他。 "你问他'剪了多少年'了。"她说。 "我没忍住。" "但他说了一句很有意思的话。"苏蔓转身往回走,林奇跟着她,"他说'你应该写那个老太太'。你听到没有?他说'你写她'。你猜为什么他会说这个?" "……因为他看过别人观察他。" "对。"苏蔓走进一条稍微宽敞一点的通道,头顶的铁皮棚顶在这里漏下来一块更大的光斑,把地面上一片水洼照得亮堂堂的,"他知道你在观察他,因为他也观察了十几年了。菜市场里的每一个人都在互相观察。卖菜的知道谁总爱挑三拣四,买菜的大妈知道哪个摊主的秤准哪个缺斤短两,杀鱼的大叔知道哪条鱼最新鲜——因为那条鱼的鳃是鲜红的,还在动。你坐家里写代码的时候,你看不到这些。" 她停下来。林奇差点撞上她的后背,在最后一刻刹住了脚,帆布鞋往前滑了一小截,水迹在鞋底和地面之间发出一声拖长的"吱——"。 "你刚才写那个'杀鱼比debug果断'的段子,"苏蔓转过身来面对他,两人之间的距离很近,近到林奇能看见她衬衫领口第二颗扣子的位置有一颗很小的线头,"那个段子有'我'了。但是'debug'这个词还是得换掉。" "换成什么?" "换成'改错'。'我改一行代码犹豫二十分钟'。每个人都在生活里改错过东西——改自己的性格、改自己的习惯、改自己的拖延症。但'debug'这个词把百分之八十的观众关在门外了。" 林奇看着她。他觉得自己脑子里有一个开关刚刚被拨了一下,从一个档位跳到了另一个档位。"改错"。一个简单的词,两个音节,比起"debug"少了三个字母,但多了几十个观众。 "你带手机了?"苏蔓问。 "带了。" "打开备忘录。" 林奇掏出手机,指纹解锁,备忘录图标是个黄色方框里画了一条横线。他点开,键盘弹出来了,手指悬在键盘上方。苏蔓往前凑了半步,她的肩膀挨到了他的上臂,西装面料和卫衣棉布之间蹭了一下,发出细微的沙沙声。 "现在写。"她说,"就写一句话。'今天下午三点,菜市场东门,我看杀鱼大叔刮鱼鳞,比git——'等等,git也得换。换成'清理相册'。'比清理相册里的截图还干脆。'" 林奇打完了那行字。他的拇指在屏幕上滑动的时候有点快,打错了一个"干脆"的"脆"字,按了退格重新打。打完了他把手机屏幕转向苏蔓。 她低头看了一眼。她的睫毛在手机屏幕的蓝光下面显得特别长,投下一小片扇形阴影在她的颧骨上。她看完那句话之后嘴角又歪了,这次没忍住,笑出声了。声音很小,但在菜市场所有的嘈杂背景里格外清晰。 "你猜这个段子如果现在上台讲,能炸几分?"她说。 "不知道。" "七分。虽然不是满分,但比你昨晚的零分强了七百个百分点的增长。"她把视线从手机上抬起来,"你知道为什么吗?" "因为主语换了。" "因为主语换成了'我'和'你'。"苏蔓说,"而且这句'比清理相册里的截图还干脆',每一个字都在观众能识别的词汇表里。你昨晚的'内存'、'指针'、'数组'——它们是另一个词汇表的东西。现在你把它们编译好了。解释器通了。" 林奇把手机锁屏,塞回口袋。他的手指在口袋里摸到了那团纸巾——昨晚那个姑娘写的"建议下次用超市举例"的纸巾——它的边缘已经有些毛了,但还在。 "你那个备忘录,"苏蔓说,"这周之内攒十条。十条'我在菜市场看到的东西'。十条里至少要出现六次'我'。下周三开放麦你上台讲。" "下周三?" "对。你上周五冷场,下周三满血复活。这是一个正常的脱口秀演员的成长曲线。"苏蔓拍了拍他上臂的位置,动作很轻,手掌在他卫衣袖子上停留了不到两秒就移开了,"我得走了。我四点约了人聊演出的事儿。" "去哪儿?" "俱乐部。老许找我。" 苏蔓转身往菜市场东门的方向走了。她的背影在午后铁皮棚顶漏下的光斑之间穿行,一会儿亮一会儿暗,深灰色外套上的那些光块像流动的拼图。她走到门口的时候回过头来看了林奇一眼,距离远了看不清表情,但她抬起右手比了一个"三"的手势。 三点。周三。 林奇一个人站在卖干辣椒和卖鸡蛋两条通道之间的交叉口。他左边是一个正在用老式秤称花生的阿姨,秤砣在秤杆上滑来滑去找平衡点,发出轻微的金属摩擦声。右边是一个年轻的爸爸推着婴儿车,车里的小孩手里攥着一根黄瓜,黄瓜上被咬出了两排清晰的牙印。正前方是杀鱼大叔的方向,他已经开始处理下一条鱼了,那条鱼在水箱里来回游,尾巴在水面上搅出细碎的波纹。 林奇把手机又掏出来了一次。解锁,备忘录,那个黄色方框的图标。 他在第一行下面打了第二句话。拇指在键盘上逐字点过去,每点一下屏幕就微微一颤。 "杀鱼大叔掏内脏的速度,比我下定决心删一条朋友圈快了十倍。他掏完内脏还顺手把鱼鳃抠了,我删朋友圈之前要在'确认删除'的弹窗上犹豫五分钟。" 打完了他站在那儿读了四遍。他试着把这句话在心里用台上的语气念出来——念到"确认删除"的时候,他嘴角不自觉地抽了一下。 然后他收了手机,往菜市场更深处走进去。他看见了一个卖豆腐的摊子,一个穿灰围裙的女人正在把整板豆腐切块,刀刃下去的时候豆腐颤巍巍地晃了晃。他站住了。他拿出手机,在备忘录里又打了一行字。 "卖豆腐的女人切豆腐的时候比我在代码里写注释果断多了。她一刀下去就是一块整整齐齐的豆腐,我写一句注释要删掉重写三遍,最后一怒之下不写了。然后三个月后我自己也看不懂那行代码是干什么的。" 他打了退格,把"代码"两个字删掉,换成"笔记"。 "……三个月后我自己也看不懂那行笔记是干什么的。" 好多了。他说不上来具体好在哪里,但主语换了之后,整句话像从一台旧的电脑搬到了一台新的上,运行速度肉眼可见地变快了。 他在菜市场里又转了四十分钟。出来的时候手里多了一袋草莓,是路过一个摊子的时候那个大妈硬塞给他尝的,尝了一颗甜得眯眼,他就掏钱买了。十五块钱,袋子不大,草莓红得发亮,底下的叶子还带着泥。 出了菜市场东门的时候他看了看手机,四点零二分。阳光比来时斜了一些,梧桐树影拉长了两倍,地上的光斑从碎金变成了细长的、流动的金色条带。 口袋里的手机震了。何瑞发来的微信。 "我七点到家。记得在。" 林奇把手机放回去,那袋草莓换到左手拎着,右手插进口袋里沿着云城大道往回走。阳光从背后照过来,把他的影子拉得长长的,投在人行道的砖面上,影子顶端的头发被风吹得有些乱。 他在走路的这段路上把备忘录里的三行字又默念了一遍。杀鱼、清理相册、删朋友圈、切豆腐。所有的主语都是"我"。所有的动词都是"做了"。所有的观众都不需要知道"git"是什么。 他摸到那团纸巾,在口袋里把它展平了一角,拇指抚过上面洇开的圆珠笔字迹。那个姑娘写的"建议下次用超市举例",现在不用了。菜市场也行。菜市场更好,因为它更有味儿。 风把路边的落叶卷起来,翻了几个跟头又落下去。林奇踩过一片黄得发亮的梧桐叶,叶子在他脚下发出一声清脆的碎裂。他往前走,影子跟着他,草莓的甜味从袋子里慢慢渗出来,钻进他的鼻腔。 备忘录里的三行字还在。那是三行"人话"。是他用新编译出来的东西。 他第一次觉得,写段子这件事和写代码有一个共同点——当你找到对的入口参数时,整个程序就跑起来了。而今天下午菜市场东门,他找到了第一个对的参数。 "我。"