一
九月的阳光像一把未开刃的刀,闷热却割不破凝滞的空气。军训服刚脱下的林陌套了件松垮的白T恤,抱着篮球往操场走,后颈晒脱的皮还泛着红。他习惯性地推了推黑框眼镜,指尖蹭到汗,镜片便蒙上一层雾——这动作像敲代码时按下“删除键”,总想把狼狈的细节一键清空。
篮球场空着,除了风卷着几片落叶在三分线外打转。他刚拍了两下球,身后就传来一声嗤笑:“计算机系的也打球?键盘摁多了,手指头还能弯吗?”
林陌回头,撞见一道影子几乎要把阳光完全遮蔽。陈野抱着胳膊站在场边,运动背心紧贴着贲张的肩胛,汗珠顺着下颌线滚进锁骨凹槽。他脚尖随意勾着一颗球,像猎豹拨弄到手的猎物。
“场地先到先得。”林陌低头擦了擦镜片,声音闷在掌心里。
“先到先得,在我这里没有这一说法,只有靠实力争取,来,单挑。”陈野的球“砰”地砸在他脚边,惊飞了落叶,“赢了的占场子,输了的……”他忽然咧嘴一笑,“管对方叫一周‘爸爸’。”
林陌没应声,只是默默走到三分线处。球出手的瞬间,陈野吹了声口哨——空心入网,连篮筐都没颤一下。
“花架子。”陈野抄起球,起跳时小腿肌肉绷成拉满的弓。篮板在暴扣下呻吟,篮网“刺啦”一声裂开半截,铁圈颤巍巍晃着,像被撕碎的战旗。
他看着头顶撕裂的球网,眼神闪过一丝慌张,但转瞬即逝,转身向着林陌挑眉:“这才叫打球,程序员。”
“我是比不过你,”林陌抹了把下巴的汗,“但至少,写程序不用赔篮网。”
“赔个屁!”陈野喘着粗气,大骂道,然后咧嘴笑了笑,“明晚八点,带好你的绣花针,老子等你来修网。”
林陌推眼镜的手顿了顿。他想起军训时教官总吼“别把脑子练废了”,此刻他似乎忽然懂了这一道理,有些较量根本不在逻辑里。
后来林陌总想起那个画面:陈野蹲在路灯下拧螺丝,银链子垂下来叮当响,嘴里叼着根冰棍棍儿。“喂,代码佬,”他含混不清地说,“你这三分球……还挺带劲。”
夜风卷走蝉鸣,林陌把扳手递过去:“你扣篮的时候,像台死机的电脑。”
“啥意思?”
“蛮力过剩,毫无逻辑。”
陈野笑骂着踹他一脚,冰棍棍儿掉在地上,化成一滩黏糊糊的月光。
暮色漫上来时,陈野一屁股坐在场边,从包里掏出两罐可乐。易拉罐拉环“咔嗒”轻响,气泡涌上来盖住他含混的嘟囔:“喂,明晚七点,带瓶云南白药来。”
“怕我打爆你?”
“怕你眼镜碎了没处哭。”陈野把空罐捏瘪,抛物线精准投入垃圾桶,“篮板下没有代码,只有肌肉和汗水——这话记着,给你当座右铭。”
路灯“唰”地亮起来,把两道影子拉长又叠在一起。裂开的篮网在风里晃啊晃,像某种柔软的计时器,数着此后无数个夜晚的球声、笑骂、和易拉罐相碰的轻响。
后来林陌总说,那天的篮筐是被陈野扣碎的。而陈野咬死不承让:“少扯,那破篮网军训时就被教官挂水壶拉练过——风吹日晒半个月,狗都能扯烂。”他忽然伸手把林陌的眼镜摘下来,对着路灯眯眼打量镜片上的指痕,“倒是你,以后再拿镜框当投篮瞄准器,信不信我把篮筐焊高半米?”
二
几周后,一次编程大赛后,林陌因失误没有取得理想的成绩
天台的夜风裹着暑气未散的余温,林陌站在水泥护栏边,仰头灌下最后一口可乐,铝罐在掌心发出脆响。眼镜片上映着远处零星的宿舍灯火,手机屏幕在掌心反复亮起又暗下——那条未读的群消息还挂着刺眼的红色文字:“创新赛决赛名单公示”。他拇指悬在“确认删除”键上许久,最终只是熄了屏,把手机倒扣在腿边,编程大赛的代码还躺在云端,那串本应优雅起舞的字符此刻蜷缩成扭曲的毛线团,就像陈野暴力扣篮后总也修不好的篮网。
铁门“吱呀”一声被推开,陈野拎着塑料袋大步跨进来,六罐啤酒在塑料袋里撞得哐当响。“躲这儿修仙呢?”他踢开脚边的空易拉罐,挨着林陌坐下,金属拉环“咔”地弹开,泡沫顺着罐口溢到他虎口,“喝不喝?冰镇的,抵你上次和我修篮网的工钱。
林陌没有立马接过,只是用手指无意识摩挲着手机边缘:“你怎么找来的?”
“整栋楼就这破天台没装监控,”陈野仰头灌下一大口,喉结滚动时银链子跟着轻晃,“再说了,就你那怨气,隔着五层楼都能闻到,不就是输了一场比赛嘛,至于吗”
“不是输。”林陌突然拔高了声音,又像是被自己吓到,低头推了推眼镜,“算法被人提前剽窃......组委会认定代码雷同。”他喉头哽了哽,“我写了三个月的迭代模块,现在成了‘抄袭证据’。”
陈野把啤酒罐往地上一墩,液体溅上他运动裤的侧边:“所以你认了?”
“我能怎么证明?对方连调试日志都伪造得滴水不漏。”林陌突然冷笑一声,“是不是觉得我们搞代码的只会对键盘哭?”
“哭个屁!”陈野猛地拽过他手腕,掌心还带着冰啤酒的潮气,“你军训那会儿顶着四十度太阳改代码,键盘膜都被汗泡脱胶了,偷代码的孙子有这狠劲,文化人不都说过一句话吗“酒香不怕巷子深,是金子总会发光的” ,你要相信你自己”
林陌低头,小声嘟囔:“或许吧”
夜风倏地卷走话音,两人一时都沉默下来, 远处篮球场传来零星的拍球声,像午夜不肯睡去的蝉,固执地敲打夏末的尾声。
“喂,”陈野忽然用罐底碰了碰林陌膝盖,“你知道我为什么总找你单挑?”
林陌瞥了眼他小腿上狰狞的旧伤疤:“发泄过剩荷尔蒙?”
“我高一那年,我妈癌症走了。”陈野捏扁空罐的力道突然加重,铝皮发出尖锐的呻吟,“老头整天酗酒,我就靠打球熬着。有回跟混混赌街篮,腿骨被钢管砸裂了......躺医院时我就想,这世界哪他妈有公平?”他忽然把罐子抛向半空,银链子在月光下一闪,“后来我发现,不公平才是常态——但总得有个地方让老子撒野。”
林陌怔怔望着那道银光划过抛物线,忽然想起机房里彻夜亮着的显示屏。那些被导师否定的方案、被父亲斥为“没出路”的选择,此刻竟与陈野腿上的疤重叠成相似的形状。
“你这代码佬......”陈野又开一罐啤酒递过去,“整天把逻辑当盔甲,累不累?”
林陌终于接过酒,冰凉的触感刺得掌心一颤:“那你呢?靠肌肉就能解决问题?”
“不能。”陈野突然咧嘴笑了,“但能暂时忘记问题。”他举起酒罐撞向林陌手中的那瓶,“比如现在——去他妈的抄袭!去他妈的公平!”
易拉罐相碰的脆响惊飞了栖在护栏上的麻雀。林陌仰头灌下一大口,碳酸气泡灼烧喉管的瞬间,他忽然模糊地觉得,那些被理性规训的委屈,此刻正随着酒液蒸腾成夜风里的碎星。
“其实......”他摩挲着罐身上的水珠,“我改算法时借鉴过你扣篮的发力轨迹。”
“啥玩意儿?”
“肌肉记忆和递归函数很像,都是反复迭代形成的路径优化。”
陈野愣了两秒,突然笑得呛出眼泪:“你们系真该给你颁个跨学科扯淡奖!”
一段时间后,陈野从兜里摸出一块糖扔过去:“接着,明天球赛别丧着脸上场。”
“明天?”林陌皱眉,“组委会还没撤销处分......”
“处分管处分,球赛归球赛。”陈野起身拍了拍灰,“代码能被偷,三分球总偷不走吧?”他走到铁门边又回头,半边身子浸在月光里,“喂,要是你明天投进五个三分……”
“就怎样?”
“老子把‘爸爸’的称呼还你一周!”
铁门晃荡着合上,笑声混着脚步声一路往楼下滚去。林陌撕开糖纸,突然发现糖纸上写了一句话,上面是歪扭的字迹:“代码佬,篮筐被后勤调低半米了,明天可别找借口手软了”
夜风掀起便签一角,远处传来篮球撞击地面的闷响,像某种固执的心跳。
三
篮球馆的顶灯在汗水中晕开一圈圈光晕,林陌推了推眼镜,指尖无意识地摩挲着裤缝。观众席的喧闹声像隔着一层毛玻璃,他盯着记分牌上刺眼的“28:29”,喉咙发紧。最后一分钟,球权在对方手里,陈野被两人包夹在底线,手臂上的青筋暴起,像一条条不甘心的河。
“代码佬!发什么呆!”陈野突然一声吼,林陌猛地抬头,正对上他充血的眼睛,“老子的球传不出去,你他妈倒是动啊!”
林陌浑身一颤。记忆突然闪回编程大赛前夜,屏幕上跳动的光标和此刻陈野指尖旋转的篮球重叠成同一种焦灼的节奏。他深吸一口气,忽然摘下眼镜塞进口袋——世界骤然模糊,但身体却像被输入了精确的指令,朝着三分线斜插过去。
“接球!”陈野的声音几乎撕裂。篮球裹着风声砸来,林陌屈膝跃起的瞬间,耳边炸开一片惊呼。没有眼镜,篮筐在视野里融成一团混沌的光,可他分明感觉到肌肉记忆在苏醒——就像调试了千百次的递归函数,每一次弹跳都是最优解的轨迹。
球脱手时,陈野已经冲到了篮板下。“进!”他嘶吼着,像要把胸腔里所有的不甘都撞进这个字。
唰——
篮网轻颤的声响被欢呼声淹没。林陌踉跄落地,还没站稳就被陈野一把搂住脖子,汗津津的额头抵上他的太阳穴:“五个三分……,你他妈真敢啊!”
哨声刺破喧嚣,记分牌定格在“31:29”。林陌摸索着戴上眼镜,视线清晰的那一刻,他看见陈野的银链子黏在锁骨上,随喘息晃出一道细碎的光。“‘爸爸’的称呼……”他难得勾起嘴角,“可以还我了?”
“还个屁!”陈野一巴掌拍在他后背,力道大得让人趔趄,“老子改主意了——今晚烧烤你请客,当利息!”
“耍赖”
“老子就耍赖了,怎么滴”
林陌没有回答,只是无奈地叹了口气
路灯下,两人瘫坐在摊边,油滋滋的肉香混着夜风往鼻子里钻。陈野咬开啤酒罐,泡沫溢出来沾湿了绷带——早上训练时被指甲划破的伤口还渗着血丝。“喂,”他用罐底戳了戳林陌膝盖,“你摘眼镜那下挺唬人啊,跟变了个人似的。”
林陌捏着烤签的手顿了顿:“算法被偷那晚,我坐在机房把眼镜摘了……才发现屏幕光晕散开的样子,很像没对焦的篮筐。”他自嘲地笑,“可能人绝望到极致,反而能看清最原始的逻辑。”
陈野忽然沉默。远处有野猫蹿过灌木丛,带起一阵窸窣。“知道我为啥非拽你打球吗?”他猛灌一口酒,喉结滚动得像在吞咽某种坚硬的东西,“你这人……太他妈像从前的我了。绷着根弦,总觉得输一次天就塌了。”
林陌转头看他。月光把陈野眉骨的伤疤洗得发白,那是高一街篮斗殴留下的勋章。“现在呢?”林陌问。
“现在?”陈野把空罐捏瘪,抛物线精准投进五米外的垃圾桶,“现在老子发现,天塌了也有篮筐顶着!”他忽然从兜里掏出一团皱巴巴的纸扔过去,“后勤处大爷给我的。”
林陌展开纸条,上面是歪扭的铅笔字:“同学,篮网换新了,这次用尼龙绳,耐撕。”背面还画了个歪歪扭竖的大拇指。
“你贿赂大爷了?”林陌挑眉。
“哪用贿赂!”陈野得意地晃了晃手机屏幕,通话记录里赫然显示“后勤处张师傅”,“我跟老头说,这篮网拴着计算机系的希望呢,万一再被扣碎,保不齐有人转系去文学院写酸诗……”
笑声惊飞了树梢的麻雀。林陌把纸条仔细折好,忽然轻声说:“下周创新赛重启,我报名了。”
陈野伸懒腰的动作停在半空,嘴角却扬起来:“这次算法加密没?”
“加了。”林陌摘下眼镜哈了口气,“用你扣篮的力度设的密码——暴力破解至少得砸坏十个键盘。”
“我去,你们文化人骂人真高级。”陈野笑着踹他一脚,起身时顺手捞起滚到身边的篮球。霓虹灯把他的影子拉得很长,几乎要触到林陌脚边。“走了代码佬,”他背身挥了挥手,“明天七点,带瓶云南白药来。”
“又要单挑?”
“不,教你背身运球——”陈野的声音混着夜风飘来,“省得你下回摘了眼镜连老子传的球都接不稳!”
林陌低头笑了。手机屏幕亮起,创新赛报名成功的邮件安静地躺在收件箱里。他按灭屏幕,仰头喝光最后一口啤酒。易拉罐捏扁的脆响中,他忽然觉得那些蜷缩在云端的代码,此刻正舒展成月光下的篮网,在风里轻轻摇晃。