Talk is cheap,但读史的快感在于翻看git log时发现那些被force push覆盖掉的commit。十六国这段代码库里,王猛就是那段被系统注释掉的critical function——没有他,前秦这个repo根本跑不到淝水之战就会segfault。
恒温北伐那年,灞上军帐里的画面应该是这样的:粗麻布衣裳缝缝里钻出胖胖的虱子,33岁的王猛一边伸手进衣襟抓虱子,一边跟东晋大将军讨论天下兴亡。恒温看着这个旁若无人的河南年轻人,手指在案几上敲出焦虑的节奏。烟灰落在虎皮毡上,王猛把虱子掐死,弹飞,然后说:"大将军不远千里深入敌境,长安就在眼前,你却按兵不动——你难道不知道百姓怎么看吗?"这就像是直接指出对方代码里的死循环,恒温被debug得哑口无言。
但王猛拒绝了恒温南下的offer。原因很务实:南方那套门阀继承机制是hard-coded的,他一个卖畚箕出身的寒门,过去只能当legacy system里的冗余变量。他选择留在北方,等待一个能让他拥有root权限的明君。
苻坚出现的时候,王猛找到了他的runtime environment。357年,前秦这个project处于严重的technical debt中:氐族贵族各自为政,刑法废弛,经济崩溃。王猛的 refactor strategy简单粗暴:鞭尸。
新平之战后,他当着苻坚的面鞭打仇腾、席宝的尸体,震慑豪强。市场规范、农田水利、户籍整顿——这套组合拳打下去,关中地区从fragmented state变成了monolithic architecture。史书记载"百僚震肃,豪右屏气",其实就是说那些不遵守coding standard的开发者被强制code review了。
但王猛的高光时刻不是治国,而是金刀计。369年,慕容垂带着金刀来投,苻坚高兴得像捡到了开源宝藏。王猛却盯着那把刀——刀鞘上錾刻着鲜卑族的狼图腾,在烛光下泛着冷光。他买通慕容垂的亲信金熙,拿着金刀去找慕容令:"你爹让你快跑。"慕容令果然反叛。这个plan B几乎完美,如果不是苻坚这个PM过于仁慈(或者说是naive),在最后时刻放过了慕容垂。王猛的手指在袖中收紧,他知道这个memory leak迟早会crash整个系统。
375年,长安秋深。王猛躺在病榻上,窗外是飘落的银杏叶。苻坚哭着问后事,王猛的声音像断线的 debugger:"晋虽僻陋,正朔相承,臣没之后,愿不以晋为图。"这是最后的warning log,可惜苻坚选择了ignore。
为什么王猛被低估?三点:
- 执行周期太短。从出山到去世仅16年,像一段被高度优化的算法,后人只看到结果,看不到过程复杂度。
- 政治不正确。汉人辅佐"胡族"政权,在传统史观的民族主义ideology里天然低分。
- 连带责任。淝水之战的失败mask了他所有的前期贡献,就像一段完美的frontend代码因为backend崩溃而被整体rollback。
我时常在想,如果王猛多活十年,前秦会不会真的统一?但历史没有if语句。此刻我杯中的红酒映着灯光,像极了当年桓温帐中那盏油灯。有些函数虽然被注释掉了,但内存里应该永远保留这个pointer。