作为一名程序员,我怎么理解《黑客帝国》里表达的东西?

事先声明:《黑客帝国》系列本质上讨论的是哲学,只是借了科幻和动作的皮。但是本文从程序员的角度去看待影片中发生的种种现象,藉此寻找其与电脑程序的关联。

就我个人的了解,《黑客帝国》里颇有争议的论点是:Zion是否为另一层由机器构造的虚拟世界?这是个好问题,不过这对我的理解来说无关紧要。你怎么知道哪个世界是真实的呢?你怎么判断你所处的世界属于哪一层呢?一切只是基于人类对世界的认知。说真的,持有不同意见的人不应该强迫别人同意自己的看法,应该容许反对意见,这样才能强化自己理论的可靠性。

废话不多说,说一说我到底从程序员的角度看到了什么。

1.黑猫梗,黑猫在西方认为会带来不幸,在Matrix里它经常在系统上有变动(通常是在处理异常)时出现,而且会出现两次相同的场景。我对这里的理解是,Matrix在做出修改时没来得及同步区块,导致一小部分区块与其他部分的时间不重合。就有点像是看直播时,有时候会跳,有时候又会重复一样,是数据流传输时发生的错误。而用黑猫作为代表,说明Matrix做出的改动通常对系统还是有负面影响,也算是一种不幸吧。

2.滤镜对Matrix和现实的区分,在Matrix里的画面都是带有绿色滤镜的,凸现其不真实,而现实中没有。这里有人会反驳说无法证明没有绿色滤镜的世界就是真实世界,But,Who cares?如果非要这么说,导演为什么要加这么一个细节?而且导演则表示就是靠滤镜来区分Matrix和现实的。与其纠结太多这方面的意义,不如去探讨影片所映射的哲学问题。

3.绿色的数据流,据说是用了unicode里的字符,不过多数都是日文里的假名,虽然不知道有没有意义,不过当初看的时候一脸懵逼。除此以外还有金色、白色,金色应该代表高权限,白色代表数据修改的瞬间。除此之外,关于数据流的意义在影片中没有做太多解释,只是一个科幻电影的载体。

4.关于The One的本质,影片已经解释了它是所有错误的集合,其实应该算是错误日志的打包。Neo只是这个错误收集程序的载体,因为必须收集各个部分的日志,所以拥有较为高级的权限。Neo是被择为救世主的,是被系统赋予了权限的,并不是他天生就有这样的能力,而是他适合做The One的载体。

5.关于Agent,目前知道的是三人组合,其中一人为Smith。Agent是Matrix当前版本里处理异常的程序,就好比杀毒软件的地位,在人类社会里就是警察、特工、执法员。他们也是被系统赋予了较高的权限,能够轻易打穿墙,但仍受系统所设定的物理规则限制,因此不能飞也不能直接覆写别人,但是可以把普通人(指没有脱离Matrix控制,还在当电池的人)当做载体暂时变身,载体死后也会变回去。虽然并不是无所不能,但是追捕异常进程也是绰绰有余。

6.关于Smith的变异,首先从第一部开始就露出倪端,他显然被脱出Matrix的人刺激到了,也想要那所谓的自由,然后被Neo摧毁了。但是他偶然得到了Neo的代码,不想被系统删除,于是逃进了Matrix,此时他已经是一个病毒,而且拥有了Neo的部分权限,可以覆写其他人的程序(意识),甚至可以覆写Agent的代码,把自己无限增殖。到最后,整个Matrix都被他掌控,多亏了Neo才恢复。还有就是他如何覆写人的意识,可以说那个时代的程序能够控制脑波,即便是程序也可以代替大脑的思考能力。Smith产生的根源是Architect(建造师)想配平方程式,但是他错误地估计了Smith的危险,导致Matrix面临崩溃。

7.关于最后为什么Smith失败了,因为他跳进了Neo和机器大帝的陷阱里。Smith感染了Neo,但Neo的插头与机器大帝连接,机器大帝读取到了Smith的特征码,并把含有特征码的程序彻底抹除。当然,从结果上来看,应该是处于对立面的两个程序被中和,方程式配平,Matrix暂时恢复了稳定。

8.为什么Neo可以手挡乌贼(哨兵),被困在火车站,眼瞎后还能看见Smith和机械国的一切?问题的答案是,他掌握了无线连接Matrix的能力。那为什么之前要用插头连接呢?我们都知道,现在有线连接还是比无线连接稳定而且速度快的,这里也同理,Neo处于无线连接状态时能够获取的数据量很少,速度很慢,至于为什么在火车站看不出,是因为那里并不需要接收Matrix的大量数据,因为那里是火车人做的一个管道程序,与Matrix相对隔离,所以数据量不大,但是也可以通过Matrix连接。手挡乌贼其实是通过Matrix对它们发送了自毁信号,机械国也是连接着Matrix的。一切的一切,都可以用Matrix与它们的关系解释。从后面的片段可以看到,Neo实际上是连着插头退出Matrix的,也就是说没有插头他肯定没法退出火车人的管道程序,因此需要有线连接才能重新接入Matrix并退出。

9.为什么Neo会被困在火车站?Neo的代码被法国人的妻子偷了。她要求Neo给她一个吻,亲吻其实就是一种数据交换,Neo并没有意识到这一点,所以没有保护好自己的代码,从那一刻起,他已经被控制(骇入)。其实就是这么简单,不用想得太复杂。

10.为什么法国人想要Oracle的双眼?Oracle是先知,透过双眼看透未来(其实是机器的预测能力,事实证明她也不是做100%确定的事情的)。法国人最想要的是权利(权限),拥有Oracle的双眼就等于有了她的最高权限。要知道,程序是有确切目的的,并不是像人类那样为了爱恨情仇只是去报复而已,所以法国人是有目的的。(另外最后他老婆反水真的是笑出声)

11.为什么拔掉插头,在现实中会死亡?其实对于这个设定,应该大多数人都这样理解:心死了,身体也会死去,拔掉插头就是把灵魂和身体分离,因此就会死去,这也是影片中传达的一个信息。但是事实好像并没有那么简单,因为Neo就曾经“复活”过,而且在现实世界中无意间无线连接到了Matrix,这说明插头只是起到一个连接的作用。我的猜想是这样:一是拔出的一瞬间,有可能会产生电流激荡,对大脑进行损坏,二是留在Matrix的大脑数据还没有得到缓存,造成丢失,两者结合起来就会造成死亡。当然这个问题就是一个设定的问题,并不需要细究。

目前能想到的就是这些,日后有更多想法会继续补充。

总而言之,虽然它本质上是一个讨论哲学的影片,但它毕竟首先是一部科幻片,它的设定是基于电脑程序的,所以一切的行动都围绕着电脑程序展开,无论是里面的一些普通的程序还是特工,都是以自己的目的行事,一旦无用就被丢弃,而逃亡的程序则会遭到追杀。用这样的一个舞台,无论是喜爱动作片的观众,或是对计算机编程感兴趣的观众,亦或是喜欢讨论哲学的观众,都能找到自己喜欢的点(我全都要.jpg)。不过,这样的一个影片想要拍好,那必然需要优秀的制片组,哪一方面都是不能掉链子的。在当时CG还不发达的时代,能够拍出这样一部跨越时空的好片,属实难得,建议没看过的去看一看。

发表评论