上一章的《秘密》里,他把"一个人的意识装进另一个人身体"这种听着像玄学的设定,硬是写成了一台每一步都能运转的机器。那是"软设定、硬执行"。到了《白夜行》,他做了一件更胆大的事:把整台机器最核心的那个齿轮——两位主角脑子里到底在想什么——直接从图纸上抠掉,留了一个洞。然后他赌你会自己把这个洞补上。
《白夜行》大约出版于上世纪九十年代末,是一部结构宏大、时间跨度很长的长篇。它后来成了东野圭吾最常被人拿出来说的代表作之一,也被反复搬上银幕和荧屏。但真正让写代码的人竖起耳朵的,不是它有多畅销,而是它的一个反常做法:全书近乎从不直接钻进两位主角的脑子里,几乎不写他们的内心独白。
他删掉了最该写的那段代码
常规的小说,主角想什么会明明白白告诉你:"她恨他""他其实很痛苦""这一刻她下定了决心"。作者就是那个全知的旁白,随时能把摄像机推进人物脑内。这在软件里相当于——所有关键变量都是公开可读的,你想看哪个状态,打印出来就行。
说人话:普通小说像一个把内部数据全打印在屏幕上的程序,你不用猜,它直接告诉你此刻每个人心里几斤几两。
《白夜行》偏不。这两位贯穿全书的主角,你几乎全程只能从外面看他们:他们做了什么、说了什么、别人怎么议论他们、案子在他们周围怎么一件件发生。但他们为什么这么做、彼此之间到底是什么关系、心里在盘算什么——书里基本不说。东野把这段"内心独白"的代码,整段删了。
对工程师来说,删掉一段代码从来不是偷懒,而是一种设计判断。他删的不是可有可无的注释,删的恰恰是全书最要命的那一段。这就好比你写一个程序,把最关键的那个函数体清空,只留下它的输入和输出,让调用方自己去脑补里面发生了什么。
留白不是省事,是造了一个接口
这里得请出本章的核心概念。软件里有个词叫 接口——它规定了"你能看到什么、能传什么、会得到什么",但故意不告诉你"里面具体怎么实现的"。你用一个函数,只需知道给它两个数字它会返回和,你不需要、也不允许去看它内部是怎么加的。
说人话:接口就是一块挡板。挡板正面有几个按钮和显示屏,你只跟这一面打交道;挡板背后的线路怎么接的,藏起来,不让你看,也不用你看。
东野对两位主角的处理,就是给他们做了一块这样的挡板。你能看到的"正面"是:一连串在他们周围发生的事、一条条看似不相干的案子、一些擦肩而过的巧合。挡板"背后"——他们的动机、他们的联系、那条把所有事件串起来的暗线——他一个字都不明说。
但他把接口设计得极其严丝合缝。正面露出来的每一个"按钮",都精确对应背后那条你看不见的线路。你把散落全书的事件按时间摆好、两两一对,会发现它们咬合得天衣无缝——每次这边出事,那边必有一个人的处境随之改变。你没被告知任何内心戏,可这些外部事件的排列本身,就逼着你在脑子里算出唯一一个能解释它们的答案。
为什么"不写"比"写"更难
外行会觉得:不写内心,那不省事了吗?恰恰相反。这是全书工程量最大的部分。
你想,如果作者直接告诉你人物在想什么,那事件对不对得上、逻辑严不严密,其实有内心独白兜底——实在圆不上,让人物"心里一软""突然醒悟"就糊过去了。可一旦你把内心戏全删掉,就等于撤掉了所有兜底。现在读者判断因果的唯一依据,就是那些外部事件的排列。这意味着:
- 每一起事件发生的时间点都不能错,因为读者要靠时间先后来推因果;
- 每一个看似无关的细节,最后都得能并到那条暗线上,不能有一个真正的废件;
- 全书跨度那么长、人物那么多,这套隐藏的因果链必须从头到尾自洽,不能有一处对不上——因为一旦对不上,读者脑子里那台计算机就会报错,整本书就塌了。
这正是第七章说过的那条工程铁律的极限版本:公平性——读者手里拿到的所有零件,都足够拼出真相。只不过在《白夜行》里,他把这条律推到了尽头:他不给你一句结论,只给你零件,然后信任你能拼对。零件必须多到足够拼出唯一解,又必须克制到绝不替你拼。这中间的分寸,是要反复调试才能拿捏的。
说人话:他不是"懒得写答案",而是把答案拆成一堆线索藏进故事里,还得保证这堆线索算来算去只能得出那一个答案。这比直接写答案费劲得多。
把计算外包给读者的那台机器
为什么这么设计威力巨大?因为一个结论如果是作者告诉你的,你只是"知道了";一个结论如果是你自己在脑子里算出来的,你会"相信它、并且忘不掉"。
这在工程上有个朴素的对应:用户自己动手得到的结果,比系统直接塞给他的结果,信任度高得多。你自己一步步推导出的公式,和别人甩给你的答案,分量完全不同。东野等于把"理解两位主角"这道最重的计算,从他的服务器上卸下来,分发到了每一个读者的脑子里去跑。上百万个读者,就有上百万台机器在各自运算——而且因为每个人补进去的情感和想象不同,算出来的那个"真相"带着各自的体温,反而比作者写死的版本更扎人。
这也解释了一个看似矛盾的现象:一部几乎不写人物内心的书,为什么读起来后劲那么大、那么让人难受。答案是——那些没被写出来的内心,全在你自己脑子里被你亲手补齐了。作者留的那个洞,是你用自己的情感填的,所以它长在了你身上。留白不是空白,是他精心留出的、让你参与计算的接口。
一个工程师才敢下的赌
敢这么写,需要一种很特别的自信,而这种自信恰恰是工程训练给的。一个没把握的作者,会忍不住到处解释、生怕读者看不懂,就像一个不信任自己代码的程序员,到处加冗余的打印和注释。而东野敢删到只剩接口,是因为他验证过背后那条因果链是自洽的——他知道零件够了,知道读者一定拼得出来,所以他敢不说。
这跟他早年在产线上的训练是一路的:一个模块,只要接口定义清楚、内部逻辑经过验证,你就可以放心地把它盖起来、不再去碰。你信任的不是运气,是你验证过的那套逻辑。《白夜行》就是他把这份"我验证过、所以我敢藏"的工程胆量,用到了小说结构上的极致。
他没有给出方程的解。他只是把方程列得足够严谨,然后相信每一个读者,都会在合上书之前,忍不住自己去解一遍。
下一章,他会把这套"为爱设计一个骗过所有人的局"的工程美学,推到它的巅峰样本——一位数学家的献身。