.. Kenneth Lee 版权所有 2017-2020 :Authors: Kenneth Lee :Version: 1.0 关于架构师的爱恨情仇——《黑客帝国》世界观解读 ********************************************* 上个周末陪女儿看了一次《黑客帝国》,由于要给她解释,这是我第一次认真把这个故事 从头到尾看了一遍。我通过这段文字把这个故事的思想逻辑整理一下。 首先,就像很多人都能看懂的一样,整个黑客帝国的世界,基本上除了Architect(架构师 ),其他都是程序(架构师也可能是,但这对我们讨论这个问题的逻辑没有意义,读者很 快会看到我这样的说的原因)。无论在Matrix里面,还是在Zion里面,都是程序,都是虚 拟的。 我们对“人”的认知,如果抛开物质本身,就是我们对一个“连续理智”(类似线程)的理解 。所以,人,是对过去的认知,对当下的理解和对未来的预期。这个精神存在在什么地方 ,都不影响这个逻辑。所以才有了电影中的,活在Matrix中的精神,移到Zion中,我们还 是认知这是同一个人,“精神”,是我们标识这个人的方法,肉体(所谓“皮囊”)不是。这 就好像一个线程在CPU A上执行,移到CPU B上,我们还是认为这是同一个线程。我们不用 CPU来标识线程,我们用线程的过去(堆栈),现在(寄存器的内容)和未来(程序和环境 的共同作用)来标识这个线程。这些全部是数据,都是虚拟的,可以实体化为CPU中的寄存 器和堆栈,硬盘上的snapshot,或者网络上正在传输的迁移数据。 《黑客帝国》把程序类比成了人,这里我们谈程序和谈我们认为的真实的人没有区别,都 是类似线程的一段思想。 人为什么会存在,这来自因果。 为什么程序员会写出一个程序?这是他老板要求的。这就是这个程序的因,有因必有果, 果变成下一个因,我们无法追溯最原始的因。为什么他老板要求他写这个程序,可能是他 老板收了客户的钱,也可能是老板只是心血来潮,有钱任性。你要某个因,永远都可以追 溯上去,没有尽头。所以,虽然我们都想追因(以便更好地控制未来,其实就是想求导) ,但其实我们都只能追到一定的程度。如此而已。 所以,有一点很重要,一个程序(线程)能存活下去,是因为这个程序“有用”,没有“用” 的程序,很快就被Delete了(这是电影中明确说的)。程序具有“有用”这个特性,连“程序 员”都轻易不敢Delete它,比如你一个公有云的SRE敢随便杀掉一个和当前运维用户有关的 线程吗?我们都被因果所绑定,不因为你超脱到什么地方,你就可以超脱因果的。 我们每个人,不过是一条因果链的一部分,无法超脱,超脱也只是因果链的一部分。只要 还是我们现在对“人”的认知,它就被因果链绑定,因为因果链是我们对“人”定义的一部分 。 所以,在火车站,那个电厂管理程序才说,“我不拒绝宿命,并且感谢宿命给我美丽的妻子 和聪明的女儿……”。 所以,无论我们如何徒劳,我们不过是做了宿命要求我们做的,不能超脱,因为这是宿命 定义的一部分。 所以,人其实就是机器,寻求“不是机器”的决心,带来了Zion,但Zion并没有超越因果链 。 这就是《黑客帝国》的基本世界观。 好了,现在我们在这个世界观中,看看“架构师”的“因果链”。《黑客帝国》中的这个架构 师被描述得是比较傻的(否则无法体现编剧的“聪明”:)),他并没有看到自己的“因果链 ”。让“我”这个比他还超越一层的“架构师”来告诉你,架构师的Purpose是什么吧:架构师 存在的唯一目的,是让程序生存下去。 你还是这个程序的架构师,你就必须让这个程序继续“有用”下去,无论这个用途是什么, 否则你就不是架构师了。 而我们身边很多架构师,其实都和电影里的架构师一样,以为自己存在的原因是当下的“需 求”。所以,他们都追求数学的精准,逻辑的严密,而不是代码本身的和谐和生存能力。这 就是这些代码死去的原因。而也直到这些代码死去了,他们才意识到,自己的价值( Purpose,有用)也失去了。 一个OS,用来做PC,还是用来做手机,还是用来做IoT Gateway和终端,对架构师来说是无 所谓的,重要的是让这个OS可以满足需求,进入某个因果链,这才是架构师的价值。 记得有一个故事,讲不干胶是怎么发明的,说是本来要发明一种很粘的胶水,结果失败了 ,后来设计师把这个东西做成了不干胶。类比之下,“发明很粘胶水”,这是架构师的原始 Purpose,但这个Purpose不是架构师的真正目的,生存下去才是他的真正目的,所以,发 现发明胶水这个Purpose不足以生存下去了,他就要修改成“发明不干胶”这个Purpose。 所以,先知是“发明胶水”的设计预期(你可以认为是监控和管理这个设计预期得到实现的 一个线程或者背后的开发团队),但最终是什么结果,是运行以后才知道的。 所以,Neo是什么呢?Neo是让系统存在下去的那个推演思路(同样,可以是监控和管理这 个目标得到实现的一个管理线程或者背后种这个目标进去的开发团队),而电影中,让系 统继续下去的思路是“爱”。电影中的架构师看不起“爱”,认为“爱”不过是因果链中其中一 个被动产生的一个中间因果,而编剧赋予“爱”更大的作用,编剧认为“爱”是人区别于“机器 ”的主要因素,因为爱不受逻辑和数学精准所控制,为“人”的感情所活着。这类似王守仁口 中的“良知”,是所有逻辑精准中另一个输入要素,这个要素让我们认知了我们是人这个事 实。 所以,我女儿觉得怎么Neo和Trinity怎么总是没羞没燥,一有机会就亲热,其实这正是电 影的主题:我们无法超脱,但我们还是认知我们是人,而让我们认知我们是人的事实,是 因为我们有爱,这一点,是架构师都不能控制的。因为架构师也被这个因果所控制。所以 ,经过多个版本的推演以后,架构师不得不赞成,Neo必须具有“人”的属性,虽然他还是不 明白必要性是什么,但生存下去,避免失业的风险,还是让他接受了这个结果。 作为另一个架构师,我是站在编剧这一方的。因为逻辑和数据精准其实是程序“生存”的大 敌。比如你有一个公式,可以短时间内计算出你需要的值,你还需要程序可以继续运行下 去吗?就算从个人来说,如果你确切知道你的未来每个行为,你还有生存下去的兴趣吗? 你需要一个不确定的要素,而且这个不确定的要素还是你有兴趣知道的(所以不能是纯粹 的随机值),这样的不确定要素,就是我们的心,而这个心是怎么样的,也许正是我们和“ 架构师”都不知道的,这是生存的驱动力,它看着不强大,却是所有生存原因的基础。 当我们有了这个心,它就可以成为我们的源(Source,天地根,Whatever),成为我们人 之所以为人的理由,它绵绵若存,却独立不改。无论把这个精神放到什么环境中。 我的微信朋友圈中有朋友发过一个感慨:“成功重要还是过程重要?”,我当时随手给他回 了一句:“不断成功的过程重要”。现在回想,也是一个意思,失去了Purpose,我们不知道 我们的目标是什么,失去了心,我们失去为人的资格。所以,Zion是否陷落不重要,为 Zion死的过程重要,也许这是“爱”的本意? 所以,总结起来,《黑客帝国》这个故事是用电脑的模型来思考人在因果,宿命和人生目 标上的意义,然后把这个推广到人是否可以超脱的问题。而它的结论是,超脱不是人生的 意义,人生的意义就是选择这个过程本身,所以电影最后说,避免了人类的毁灭并没有带 来什么,但去避免人类毁灭这件事本身是意义,至于这个能持续多久,对于这个意义来说 ,就是As long as possible.