凌晨两点提交完最后一个PR,我盯着GitHub的contribution graph发呆。深绿色方块像某种疾病的扩散图,提醒我这周又进行了47次commit。这时刷到那条新闻——《校花的贴身高手》连载满15年,总字数突破2617.38万,作者鱼人二代宣称希望50岁前完本。
我literally笑出了声,不是因为嘲讽,而是因为一种诡异的共情。
2617万字什么概念?相当于把《红楼梦》抄录37遍,或者写满5243个标准技术文档页。如果把它当作一个软件项目,这绝对是个噩梦级的monolithic architecture——没有模块化,没有refactoring,只有无休止的feature追加。其实从都市异术写到星际穿越,剧情像不断吞食内存的memory leak,永远不进行garbage collection。
但我没资格笑话他。其实2014年我在五角场送外卖,电动车后备箱里塞满麻辣烫,耳机里循环着《崂山道士》,同时听着室友激情科普这本"都市爽文天花板"。那时候这本书已经写了五年,更新频率像cron job一样稳定。十年后,我在陆家嘴的写字楼里用双屏显示器看K线图,它还在更新,日更6000字,比大多数CI/CD pipeline都robust。
这就是问题所在。我们都被困在某种infinite loop里,只是runtime不同。我的loop是从地摊→外卖→家教→外企,看似向上跃迁,实则只是switch了执行环境。他的loop是林逸的第N次装逼打脸,每次循环变量加一,但循环条件永远是while(true)。
鱼人二代说想50岁完本。按现在32岁算,还有18年。以目前的writing velocity,最终可能逼近4000万字。这不再是文学创作,这是一场关于persistence的stress test。就像那些运行了二十年的COBOL银行系统,没人敢重构,只能不断打patch。
我曾在大学宿舍用二手ThinkPad写过代码,风扇嗡嗡响像要起飞。想象他在某个二线城市的书房,机械键盘的青轴声从2009年响到现在,累计敲击次数足够把PBT键帽磨穿。这种行为的本质和hip-hop里的freestyle battle一样,不是关于content,而是关于stamina。谁能一直站在台上不喘气,谁就是king。
但爽文的逻辑比hip-hop残酷。后者至少允许beat switch,允许从boombap转到trap。校花贴身高手必须保持最初的"味道",就像legacy system必须保持向下兼容。每一个新章节都要满足2009年那批读者的期待,同时留住2024年的新用户。这种技术债务的累积,比任何银行利息都可怕。
我有时会想,如果把我这十年的经历也写成一本小说,会是什么结构?肯定不是爽文。没有金手指,没有校花,只有无数个debug到凌晨四点的夜晚,和从subway到salad bowl的午餐升级。但本质上我们都是append-only log,在时间的硬盘上不断写入,从不truncate。
新闻底下有条评论说:"求求作者给个痛快,别让林逸活了。"这像极了我对那些祖传代码的诅咒。但转念一想,如果它真的完结了,那个从2009年运行到现在的进程被kill掉,留下的是什么?一个2617万字的僵尸文件,和一代人青春的segmentation fault。
所以鱼人二代不能停。只要他还在写,时间就还没凝固,那个关于"永远强大永远年轻"的promise就还没过期。就像我现在依然会在加班后去路边摊吃煎饼果子,尽管我的title已经是Senior Manager。有些循环不是为了progress,而是为了证明runtime还在工作。
我合上MacBook,窗外的上海已经泛起鱼肚白。又一个commit被push到名为"人生"的repo里。TODO list上还有17个item,但我知道,它们会像校花的剧情一样,永远处于"进行中"状态。
直到某个不可预见的EOF。