2015年8月23日,北京,暴雨。
这场秋雨来得格外猛烈,仿佛要将整个京城的暑气在一夜之间洗刷干净。
向阳大厦一楼大堂,气氛肃杀。
林向阳穿着一件黑色的冲锋衣,身边站着同样一身干练黑色风衣的沈清仪。作为集团首席法务官兼董事长夫人,沈清仪手里提着一个沉重的公文包,里面装的是足以买下半个互联网江湖的股权置换协议,以及足以应对任何反垄断诉讼的法律文件。
“向阳,车到了。”沈清仪看了一眼门外在大雨中闪烁的双闪灯,轻声提醒。
林向阳点了点头,转过身,看向站在身后的苏清河。
“清河,家里就交给你了。”
林向阳的声音在雷声中显得格外沉稳,“泰山那边是‘面子’,北京这边是‘里子’。如果老王的编译器出不来,我在泰山就算把马老师和马腾说得天花乱坠,也是空头支票。”
苏清河微微颔首,她今天没有化妆,脸色略显苍白,但眼神依然锐利如刀:“放心去。资金池我已经锁定了,只要那边签字,钱一秒钟就能到账。至于王博……”
她顿了顿,目光投向楼上依然灯火通明的研发中心,“只要我不倒,他就倒不了。”
“好。”
林向阳不再多言,牵起沈清仪的手,大步走入雨幕,钻进了那辆黑色的红旗轿车。
车轮卷起水花,向着机场疾驰而去。
苏清河站在落地窗前,看着尾灯消失,深吸了一口气。她转身走向电梯,按下了通往地下四层的按钮。
……
地下四层,“太初”攻坚实验室。
这里的空气仿佛凝固了。数十台服务器的风扇轰鸣声交织在一起,像是一群焦躁的野兽。
“第421次编译失败!” “内存溢出!指针引用错误!” “该死!这个动态类库的解析逻辑还是跑不通!”
王博趴在工位上,头发乱得像个鸡窝,双眼通红,满脸胡渣。他的桌上堆满了空了的红牛罐子和速溶咖啡袋。
距离泰山会议正式开始,只剩下不到30个小时。
但“方舟编译器”的核心模块——针对“微讯”这种超大型App的静态编译算法,依然卡在一个致命的bug上。
安卓应用的底层大量使用了Java的反射机制和动态特性,这就像是一团乱麻。要把它在开发阶段就“拉直”成机器码,难度不亚于要把那一团煮熟的面条重新变回面粉。
“王总,大家撑不住了。”
副手小赵声音虚弱地走过来,“连续干了四天通宵,刚才有两个兄弟去厕所吐了。”
王博抬起头,看了一眼周围。那些平日里生龙活虎的顶级工程师们,此刻一个个东倒西歪,有的直接躺在地板上睡着了,手里还抱着键盘。
“让他们睡三个小时。”
王博咬了咬牙,狠心说道,“我不睡。我再试一种算法。如果还不能解决‘虚函数表’的静态化问题,林总在泰山会被人笑话死的。”
“可是王总,你的胃……”小赵担忧地看着王博一直顶在桌沿上的肚子。
“没事,老毛病。”王博摆摆手,强行挤出一个难看的笑容,“去吧,把灯调暗点。”
实验室安静了下来,只剩下王博那令人心悸的敲击键盘声,和偶尔传来的一两声压抑的干呕。
……
凌晨3:15。
王博终于感到眼前一阵发黑。屏幕上的代码开始出现重影,那是大脑强制关机的信号。
“不行……得吃点东西……”
他摇摇晃晃地站起来,扶着墙,像个游魂一样走出了实验室。
向阳大厦的深夜食堂在三楼。此刻空无一人,只有保温柜里还亮着暖黄色的灯。
王博盛了一碗免费的小米南瓜粥,又拿了一盘白灼虾。他端着盘子找了个角落坐下,刚想拿起勺子,一阵强烈的眩晕感袭来。
太累了。
思维枯竭,体力透支。
他趴在桌子上,原本只想眯一分钟,但眼皮却像灌了铅一样沉重,瞬间将他拖入了黑暗。
……
不知过了多久。
一阵极其细微的剥壳声,钻进了王博的耳朵。
“咔嚓……咔嚓……”
王博迷迷糊糊地睁开眼。
视线从模糊变得清晰。首先映入眼帘的,是一双修长、白皙的手。那双手平日里是在签字画押、调拨亿万资金的,此刻却正拿着一只油腻的白灼虾,动作优雅而耐心地剥着虾壳。
视线再往上,是苏清河那张清冷绝美的侧脸。
她坐在他对面,没有看他,只是专注于手中的虾。剥好一只,就轻轻放进王博面前的盘子里。此时盘子里已经堆起了一座小小的粉红色虾仁山。
“苏……苏总?”
王博吓得一激灵,差点从椅子上弹起来。他慌乱地擦了擦嘴角的口水,看了看表——才睡了二十分钟。
“醒了?”
苏清河把最后一只虾仁放进盘子,用湿巾慢条斯理地擦着手指,“醒了就吃。南瓜粥我让师傅热过了,现在的温度刚好。”
“你……你怎么在这儿?”王博结结巴巴地问。林总和沈清仪去山东了,他以为苏清河早就回家休息了。
“我也在加班。”
苏清河指了指旁边放着的一叠厚厚的财务报表,“林向阳要在泰山豪赌,我得把筹码给他算清楚。为了给你那个破编译器搞研发,公司的现金流已经绷得很紧了。”
她抬起头,看着王博那张憔悴得没有人样的脸,语气依然是一贯的清冷,但眼神深处却藏着一丝不易察觉的波澜。
“吃。别让我说第二遍。”
王博不敢反抗,拿起勺子,舀了一大口粥,又夹起几个虾仁塞进嘴里。
温热软糯的小米粥顺着食道滑进早已痉挛的胃里,带来一种久违的、几乎让人落泪的暖意。那是生命的温度。
“好吃吗?”苏清河问。
“好吃。”王博狼吞虎咽,含糊不清地回答。
苏清河看着他狼狈的吃相,突然轻轻叹了口气。
“王博。”
“嗯?”王博抬起头,嘴角还挂着一粒米。
苏清河伸出手,似乎想帮他擦掉,但手伸到半空又停住了,最后只是指了指嘴角,“擦擦。”
王博赶紧抹了一把。
“你知道林向阳为什么一定要带沈清仪去泰山,却把你和我留在这个空荡荡的北京吗?”苏清河轻声问道。
王博愣了一下,摇了摇头:“因为……因为我得写代码,你得管钱?”
“因为有些仗,是在聚光灯下打的;而有些仗,是在泥泞里打的。”
苏清河的声音很轻,但在空旷的食堂里却显得格外清晰。
“林向阳和马老师他们在泰山顶上谈笑风生,那是面子。而我们两个,在这个地下室和财务室里熬得油尽灯枯,这是里子。”
“王博,你是向阳集团的技术脊梁。如果你断了,林向阳在泰山就会摔得粉身碎骨。”
苏清河看着王博的眼睛,那双平日里总是计算着利益得失的眼睛里,此刻只有一种名为“信任”的光芒。
“所以,吃饱它。然后回去,把那个该死的bug解出来。”
“我不懂代码,但我懂投资。我在你身上投了那么多红牛和小米粥,我不允许这笔投资打水漂。”
王博怔怔地看着苏清河。
在这一刻,他突然觉得胃不疼了,脑子里那团像浆糊一样的乱麻,似乎也被这一碗粥的热气给冲散了。
他看着盘子里那堆剥好的虾仁。
一只只虾仁,晶莹剔透,整整齐齐地码在一起。
“剥壳……去皮……取核……”
王博的脑海中突然划过一道闪电!
他猛地盯着那只空了的虾壳。
“对啊!为什么我要在动态运行的时候去解析它?”王博喃喃自语,眼神逐渐变得狂热,“既然是静态编译,我就应该像剥虾一样,在编译阶段就把Java的‘壳’给剥了!直接把里面的‘肉’(核心逻辑)取出来,封装成静态指针!”
“只要我预先建立一个‘虚函数快照表’,我就不需要在运行时去查表了!”
“我明白了!我明白了!”
王博猛地站起来,激动得满脸通红。他想拥抱一下苏清河,但手伸到一半又觉得不妥,只能尴尬地在空中挥舞了两下。
“苏总!你真是我的缪斯!”
说完,他端起碗,把剩下的一半粥一口气灌下去,然后像一阵风一样冲向了电梯口。
“谢谢你的虾!回头我请你吃大餐!”
苏清河坐在原地,看着那个穿着格子衬衫、跑得跌跌撞撞的背影,嘴角终于勾起了一抹淡淡的笑意。
那是连林向阳都很少见过的,发自内心的温柔。
她拿起王博落在桌上的那罐没喝完的红牛,轻轻扔进了垃圾桶。
“傻瓜。”
……
早晨7:00。地下实验室。
当第一缕阳光穿透地面,照射在向阳大厦的玻璃幕墙上时。
“通了!通了!”
一声嘶哑却亢奋的吼叫声,打破了实验室的死寂。
王博从椅子上跳起来,指着屏幕上那行绿色的字: [pilation Success: wexun_v6.0.apk -> wexun_Native_]
“微讯编译成功了!”
“启动速度0.8秒!内存占用降低45%!所有功能模块完美运行!没有闪退!”
整个实验室沸腾了。那些刚睡醒的工程师们相拥而泣,有人把键盘扔向了天花板。
王博瘫坐在椅子上,颤抖着手,拨通了林向阳的电话。
……
山东,泰山,南天门。
林向阳正站在云雾缭绕的山道上,身后是沈清仪。
电话响了。
林向阳接起电话,听筒里传来王博沙哑得像砂纸打磨过的声音:
“林总……方舟,造好了。”
林向阳握着电话的手紧了紧,他深吸一口带着山野清气的冷空气,目光投向远处若隐若现的玉皇顶。
“辛苦了,老王。”
挂断电话,林向阳转头看向沈清仪,眼中光芒万丈。
“清仪,告诉马老师和马腾,早茶可以开始了。”
“我们的‘投名状’,到了。”