分享

读书笔记41:我们只能通过模型认识世界

 JLFAlex 2020-03-22

读书笔记《柏拉图和技术呆子》

心语新事整理

去年8月麻省理工大学出版社出了一本叫做《柏拉图和技术呆子:人类与科技的创造性伙伴关系》(Plato and the Nerd: The Creative Partnership of Humans andTechnology)。

作者是加州大学伯克利分校的电子工程与计算机科学教授爱德华·阿什福德·李(Edward Ashford Lee)。作者都是“来自生产一线”的科学家和教授,这帮人非常有思想。 Lee这本书的前半部分和后半部分几乎没什么关系。前半部分讲计算机工程师的智慧,后半部分则是从理论上探讨计算机这种东西的局限性。 

这本书的作者似乎对中国传统文化有一定的了解,把全书分为阳阴两个部分。

I. Yang 阳

1. Shadows on the Wall 墙上的影子

1.1. Nerds技术分子

1.2. Artificial and Natural人工与自然

1.3. Design and Discovery设计与发现

1.4. Engineering and Science工程与科学

2. Inventing Laws of Nature发明自然规律

2.1. The Unknown Knowns未知的已知

2.2. Models of Nature自然的模型

2.3. Models Are Wrong模型是错误的

3. Models of Models of Models ofModels of Things事物额模型的模型的模型的模型

3.1. Technological Tapestries技术毯

3.2. Complexity Simplified简化的复杂性

3.3. Transitivity of Models模型的过渡

3.4. Reductionism精简主义

4. Hardware Is Ephemeral短命的硬件

4.1. Hard and Soft软还是硬

4.2. Semiconductors半导体

4.3. Digital Switches数字开关

4.4. Logic Gates逻辑门

4.5. Logic Diagrams数字图形

4.6. Digital Machines数字机器

5. Software Endures软件永恒

5.1. Self-Scaffolding自我支持

5.2. Instruction Set Architectures指导创立架构

5.3. Programming Languages程序语言

5.4. Operating Systems操作系统

5.5. Libraries, Languages, andDialects图书馆,语言和方言

5.6. The Cloud云

6. Evolution and Revolution进化与革命

6.1. Normal Engineering正常工程

6.2. Crisis and Failure危机与失败

6.3. Crisis and Opportunity危机与机会

6.4. Models in Crisis模型危机

II. Yin阴

7. Information信息

7.1. Pessimism Becomes Optimism悲观变乐观

7.2. Information-Processing Machines信息处理器

7.3. Measuring Information度量信息

7.4. Continuous Information连续信息

8. The Limits of Software软件的极限

8.1. Universal Machines?通用机器

8.2. Undecidability不可决定性

8.3. Cardinality可数性

8.4. Digital Physics?数字物理

9. Symbiosis共生性

9.1. The Notion of a Continuum连续的意义

9.2. The Impossible Becomes Possible不可能变为可能

9.3. Digital Psyche?数字意识

9.4. Symbiotic Partnership共生关系

9.5. Incompleteness不完备性

10. Determinism

10.1. Laplace’sDemon拉普拉斯恶魔

10.2. The Butterfly Effect蝴蝶效应

10.3. Incompleteness of Determinism决定主义的不完备性

10.4. The Hard and the Soft ofDeterminism决定主义的软与硬

11. Probability and Possibility概率与可能性

11.1. The Bayesians and theFrequentists贝叶斯主义与频率论者

11.2. Continuums, Again连续性,再来一次

11.3. Impossibility andImprobability不可能与无必然性

12. Final Thoughts终极思考

12.1. Dualism二元论

12.2. Obstacles障碍

12.3. Autonomy andIntelligence自主与理性

第一节:模型与真理

这本书说的是最高级的工程师智慧。

什么是工程师的智慧呢?有个笑话——面对一个装了半瓶水的瓶子,乐观主义者说,瓶子已经半满了!悲观主义者说,唉,瓶子还有一半是空的……。然后一个工程师说,嗯?这个瓶子其实没必要做这么大,只要一半大就够了。

这个笑话是说工程师有个思维惯性叫“优化”。“优化”就是怎么才能多快好省地实现一个功能。产品经理想要一个什么功能,工程师就看看可不可行、怎么能用最节省的方法把功能实现。

要是这么说的话,工程师似乎不是一个特别高光的职业。当我们谈论苹果手机首先会提到乔布斯和设计师艾维,而不是那些工程师。工程师……好像是生产线和食物链下游的一个职业。

作者 Lee 教授本人有个小感慨。按理说伯克利的教授可是非常厉害的职位,但是他调侃说,他做的这些事儿可能在他父亲眼里都是失败的。Lee的父亲本来想让他去读个MBA、回来管理家族的事业,而不是去当什么工程师 ——工程师是给他家干活的人。结果他不但选择了工程学、还去贝尔实验室当了工程师、还成了工程学的教授,这简直是堕落。

可是工程师真的这么低端吗?咱们今天就说说工程师的大道。

先从这本书的书名说起。

柏拉图的世界观

“柏拉图和技术呆子”这句话出自塔勒布的《黑天鹅》。塔勒布推崇在真实世界里摸爬滚打的人—— 哪怕这个人看上去有点“呆” —— 而柏拉图代表的是理想主义。

你可能听说过一个概念叫做“洞穴寓言”,是柏拉图在《理想国》里说的。说从前有个洞穴,洞穴里面有篝火,篝火前面有些人在做各种表演,他们的影子被篝火投射到洞穴的墙壁上。几个犯人被限制在演员和墙壁之间,他们不能回头看后面的情况,只能看见墙壁上的影子。


这些犯人以为墙上的影子就是真实世界,殊不知自己看到的只是世界的影子。柏拉图说,我们人生的意义就是要摆脱影子的束缚,去发现真实的世界 —— 也就是“真理”柏拉图说这就是人生在世唯一值得做的事情 —— 探索和发现真理。

我们专栏以前在讲数学宇宙的时候说过这种世界观。我们设想存在一个独立于任何宇宙的、由数学组成的柏拉图世界。那上面有各种数学方程,而我们看到的这个宇宙,只不过是柏拉图世界里某些数学方程的投影!

一般人只看到影子,连想都想不到还有别的,你跟他说他也不能理解。而如果有人能发现影子背后的东西,那就是英雄。按照这个世界观,科学家显然是最厉害的人物,他们发现新知识。发明家不如科学家,因为发明家只不过是使用已有的科学知识去解决我们这个影子世界里的一些问题,跟发现理想世界不能相提并论。那工程师就更是下等了,工程师好像只是实现别人的想法。这条鄙视链,其实是错的。


工程和科学

2015年发生了一个大事件,两个黑洞合并产生的强烈的引力波,被人类探测到了。我们都很佩服科学家,但是这件事当时在美国有一些议论。建造引力波探测装置,LIGO,总共花了11亿美元。那如果这个探测装置的意义就是证明了爱因斯坦100年前的一个推测、甚至说这就是物理学近年以来最大的成就……那只能说明现在物理学已经不行了。花11亿美元证实一个100年以前的学说,难道现在没有别的科学问题值得做了吗?

这么说当然有失偏颇。引力波探测的意义并不是证明爱因斯坦有多伟大。绝大多数物理学家早就相信广义相对论是对的,这次在理论上没什么惊喜。其实引力波探测的主角不是爱因斯坦,而是工程师。

引力波导致LIGO探测器的两个手臂之间的空间距离发生了相当于原子直径的千分之一那么小的变化 —— 而这个变化居然被人类探测到了!这是工程上的伟大奇迹。爱因斯坦曾经认为这么小的空间波动根本就不可能被探测到。爱因斯坦得感谢现代工程师。

所以你看,科学的进步高度依赖于工程。这还不算,有时候科学发现还是工程的副产品。三个贝尔实验室的研究者因为发现了晶体管效应而获得了1956年的诺贝尔物理奖。那的确是半导体物理学的重大突破,但是,那三个研究者可不是为了发现新物理而去研究晶体管—— 他们是为了发明新的晶体管而不得不解决物理学问题。

其实工程师从来都不认为他们只是在应用现有的科学理论。历史上经常发生的事儿是工程师已经把东西做出来了,科学家还没搞清楚原理。比如塔勒布特别爱举的一个例子是喷气式发动机。很多网页会信誓旦旦地告诉你喷气式发动机的“原理”是什么—— 其实这个原理到现在也没完全搞明白。工程师只是不断地试错、鼓捣,喷气式发动机不是在哪个科学理论的指引下发明的。

那这么说的话,工程师和科学家之间的地位是不是有点变化了呢?我们应该如何认识工程学呢?

爱迪生用的模型

爱迪生发明电灯的故事人人皆知,但是Lee给我们说了一个不同的角度。电灯需要灯丝。最早的时候,爱迪生用的是金属铂的丝。在铂丝两端加一个电压,其中有电流通过,铂丝会发热。在空气中,这么做会把铂丝给点着、烧断。爱迪生想了个办法—— 用灯泡。灯泡内部抽成真空,真空中的铂丝就不会燃烧,而是会持续发光。
你可以说爱迪生在发明电灯的过程中做出了一个科学发现:金属铂在真空中的发热性质 —— 工程师客串了科学家。但爱迪生想要的不是这个,他想要的是物美价廉的电灯泡。

“欧姆定律”说电流 = 电压/电阻。铂的电阻很小,所以铂丝的电流就会很强。电流很强,灯泡外边的铜导线就必须做得很粗,这样用电灯照明就会很贵,人们就用不起。
那要想降低电流,爱迪生一看欧姆定律,就知道必须选择电阻大的东西来代替铂丝。根据这个思路,他做了无数次实验,找到了竹丝。后来又使用了钨丝。那你说这是不是欧姆定律的伟大胜利呢?爱迪生的成功是不是一个工程师正确使用了柏拉图世界里的科学知识呢?

不是。欧姆定律根本就不是柏拉图世界里的真理 —— 它是一个错误的定律。真实世界里没有哪个材料的电压和电流是成正比的。电阻根本就不是个常数,它跟温度有关,而温度又跟电流有关—— 所以电阻跟电流有关!严格地说,欧姆并不是“发现”了欧姆定律 —— 你大概可以说他是“发明”了欧姆定律。

欧姆定律不是真理,它只是科学家提出的一个代替真实世界的“模型”。现代的哲学家都会告诉你,所谓科学理论其实都是模型。牛顿力学不是真理、爱因斯坦场方程也不是真理—— 它们都是柏拉图世界投射到我们这里的影子。

模型都是错的,但是有些模型很有用。对爱迪生来说,欧姆定律是个有用的模型。根据这个模型,爱迪生去找到了竹丝。爱迪生并不关心欧姆定律是不是柏拉图世界里的真理,他关心的是能不能基于这个模型制造灯泡。

这才是工程师和科学家的不同定位。人类的探索发现和发明创造,都不是像柏拉图说的那样一步到位找到客观真理。科学家和工程师都是研究模型的人。科学家关心的是这个模型能不能更好地反应真实世界。工程师关心的是能不能用这个模型创造出东西来。

工程师思维的大道,就是先创造一个好模型,然后想办法实现这个模型。模型是为了后来的产品实现而创造的,这就非常具有主观特色了。创造或者选择什么样的模型、怎么实现这个模型,这些都充满了工程师的个性。这是一种创造。就好像艺术创作一样。而且这个创造过程是一代一代的工程师们集体去做的,它会被积累成文化。

爱迪生发明电灯的过程中,有很多的动作属于“试错” —— 不断尝试、直到好使为止。而现代工程学面对的东西实在太复杂,一点一点试验是不行的。所以现代工程学越来越依赖于模型—— 如果你最初的模型好,就可以在模型之上再建造模型,这么一层层下去。可以说,模型,是工程师们“想象的共同体”

可能要等到下一讲你才能彻底明白这句话的意思。我们要说一个最厉害的工程学模型:开关网络。它是现代计算机技术的基石。

第二节:芯片世界


如果计算机芯片这个东西不能让你由衷地赞叹,你肯定是个一无所知的人。
芯片是人类最高技术水平的呈现。一个典型的CPU上芯片的面积大概只有不到两平方厘米,而上面有十几亿个晶体管。这东西现在无处不在,所有计算机全靠CPU运行各种程序,芯片是计算机的大脑。咱们先不用考虑那么小的晶体管是怎么造出来的,我想先请你思考一个问题 ——怎样管理十几亿个东西?

这可不是十几亿个原子或者十几亿粒沙子。所有这十几亿个晶体管都必须按照某种严格的秩序连接在一起,每一处连接都得精心安排。请问这是怎么做到的?人的认知能力非常有限,绝大多数人连500个人的名字都记不住—— 而设计芯片,可是相当于给全中国的人安排工作。

这不是什么“工匠精神”、什么“巧干加实干”、什么“文化传承”、什么“充分发挥市场作用”或者什么“集中力量办大事”就能做的事情。你需要中外古代都没有的、现代化的一流智慧。

工程师智慧的关键词叫“模型”。芯片的秘密就在“模型”之中。芯片是模型的模型的模型的模型(Models of Models ofModels of Models of

Things)。

晶体管的本质

不知道你对“场效应晶体管”的熟悉程度如何。这个词听起来有点吓人,如果没学习过数字电路相关的课程,你可能都没听说过这种东西。下面图中的就是一个最新型的场效应晶体管 ——

它最细微处的结构尺度只有10纳米 —— 也就是一亿分之一米,相当于20个硅原子并在一起的宽度!

场效应晶体管涉及到精深的物理学,但是在计算机芯片上,它只有一个非常简单的功能—— 当你听说晶体管的时候,你只需想到一个东西:开关。
我们可以用下面这张简化图代表一个晶体管 ——

它有三个“级”,代表电流的输入和输出。左边那个叫做“栅极(Gate)”,上下一个叫“源极(Source)”,一个叫“漏极(Drain)”。晶体管的运行规则很简单:
* 如果栅级的电压高,源极和漏极之间就会联通,相当于开关打开;
* 如果栅级的电压低,源极和漏极之间就会断开,相当于开关关闭。

还有一种叫做“互补”晶体管,如下图所示——

注意图中连接栅极的线段有个空心的圆圈。互补晶体管的区别在于,它是栅极电压高的时候关闭,栅极电压低的时候打开。

我们看,源极和漏极之间有时候导电有时候不导电,所以这是个“半导体”—— 晶体管是半导体物理学的伟大成就……其实准确地说,是工程师为了研发更好的晶体管而发展了半导体物理学

但是在这里你不需要理解半导体物理学。你只需知道晶体管是个开关。
开关。这么简单的东西,就能实现一切计算功能!

香农的洞见

说到这里我们必须再次请出大神克劳德·香农(Shannon)。1940年的香农才22岁,在麻省理工学院获得硕士学位,毕业时他写了一篇硕士学位论文。这可能是历史上应用最广泛的一篇硕士论文。在这篇论文里,香农解释了怎么用最简单的开关,实现一切逻辑运算

那时候还没有晶体管这种东西,大概只有电子管、甚至可能是一些用机械方式来实现的开关。而香农已经看出来了,只要你有开关,你就能有一切。
这个思想的关键是分层。咱们一层一层解说。

首先我们要用一个晶体管和一个互补晶体管来实现一个叫做“非门”的东西。所有信息都可以只用0和1两个数字编码。非门的功能就是你给它输入0它给你输出1,你输入1它输出0。我们用高电压代表1,低电压代表0。只要把一个晶体管和一个互补晶体管像下图这样连在一起,就是一个非门 ——


比如你在输入端(in)接一个3伏的高压(代表1),像图中中间的情况,我们知道下面的晶体管会“开”,所以输出(out)会和下面的低压相连接,输出就是低压(代表0)。反过来说如果你输入的是低压,那就是图中右边的情况,上面的互补晶体管会开,输出就会和上面的高压相连接,输出就是高压。

“非门”是一个逻辑门。一般来说,所谓逻辑门的功能就是对输入的0或者1进行操作,形成输出。逻辑门可以有两个输入。比如所谓“与门”,就是当且仅当输入的A和B都是1的时候,它才会输出1,否则一律输出0。类似地,还有“或门”、“与非门”、“异或门”等等。

上面这张图中列举了几个基本的逻辑门,你根本不需要记住它们—— 但是你应该记住香农告诉我们的两件事。

第一,所有这些基本逻辑门都可以用晶体管搭建。

第二,用这些逻辑门组合,就可以实现各种运算。

下面这张图就是用67个逻辑门组成的一个“运算器(ALU)”,制作这些逻辑门总共用了大约400个晶体管。

这个运算器允许你输入A和B两个二进制的4位数,它能判断A和B是否相等,还能计算A+B和A-B。 香农在他的那篇硕士论文里就设计了一个类似的运算器。
运算器是计算机 CPU 的一部分,CPU 中还有“数字同步逻辑”之类的组件,但是不管 CPU 有多复杂多高级,它也是用各种逻辑门组成的,而逻辑门是用开关做的。所以整个CPU 就是一个开关网络!

开关的功能是如此的简单。它只能根据两种命令完成两个动作,它是纯机械化地事,没有任何智能。但是亿万个这样的开关组成在一起,就是 CPU,就能运行软件,就能实现人工智能。

我们总结一下,这整个过程包含了四层的模型——
1. 最底层的是半导体物理学,
2. 晶体管开关,是建立在半导体物理学上的模型,
3. 逻辑门,是建立在开关上的模型,
4. CPU,是建立在逻辑门上的模型。

这个层级系统很像是人类的组织:中央管省,省管市,市管区,区管基层单位。人类组织是人类“想象的共同体”,CPU的层级结构也是工程师想象的共同体。

平台与自由

晶体管能做多小,这是物理学决定的。但是除此之外,CPU 就跟物理学没啥关系了。剩下的事都是工程师的头脑里的设计,所以叫“模型”。从开关往上一层一层的构建,都是人为设计的,只受到想象力的限制。而且这种设计肯定不是唯一的—— 今天的计算机是历史的产物,保留了香农的个人风格,已经成了一个文化 —— 如果计算机起源于中国,从晶体管到CPU也许会是非常不同的设计。

但是请注意,这种分层的大结构,这种每一层模型是建立在前一层的基础之上的思想,很可能已经是最好的办法。

这种结构的好处是,在每一层上搞设计,你都只需考虑它紧挨着的下一层。设计逻辑门不需要考虑半导体物理学,设计运算器不需要考虑晶体管。像这样的“层”,可以称为“平台”—— 给你搭一个平台,设计者可以在平台上随便唱戏。

有人说平台的好处就是给了设计者“免于选择的自由(freedom from choice)”。每一层平台都在减少上一层的选项。选项变少了,集中精力创作才成为可能。最后程序员只需要对一块CPU、而不是十几亿个晶体管编程。

以我之见,这种层级平台之间的合作,和亚当·斯密说的那种人与人横向的劳动分工不是一个故事。想要发明铅笔这种东西,你是先看看世界上都有些什么,把不同东西拼凑在一起综合成一个新东西。而 CPU 的平台结构则完全是工程师的顶层设计!

除了最底层是物理学给的之外,其他每一层都首先是工程师想出来的模型。CPU 是个硬件,而设计 CPU 却几乎全是理论 —— 就好像艺术创作一样。

这可不是自然界的逻辑。你可以把生物体分成好多层,比如分为器官、组织、细胞,但是这种分层跟设计 CPU 可不一样。自然界有很多所谓“涌现”现象,也就是整体会表现出个体运动解释不了的性质 —— 哪怕你把这一层研究透彻了,你也无法解释下一层是怎么回事。

只有 CPU 这种人为设计的分层,才有那么清楚的逻辑结构。这个逻辑结构不但给了设计师自由,而且保证了通用性。比如2001年,加州大学伯克利分校的华人教授胡正明和人合作发明了一种新的晶体管,叫“鳍式场效应晶体管(FinFET)” —— 就是最前面那张图上的那个晶体管 —— 已经被用在了英特尔的 Haswell 系列CPU 上。这种晶体管跟以前的非常不一样,但是英特尔并不需要专门为它重新设计 CPU,用户除了发现速度更快能耗更低,完全感受不到晶体管的不同 —— 因为往上每一层的做法都是完全一样的

最底层的硬件可以随时变,但是每一层的逻辑范式可以长期不变。这大概也是为什么想在芯片领域“破坏性创新”如此困难。香农以来的芯片结构已经被历史积累成了一个文化。

第三节:软件天下


今天的中国拥有全世界最发达的互联网应用,但是在信息技术上,我们还没有什么特别拿得出手的创新。比如说,现在有很多很多种编程语言,有的是第一流的计算机科学家发明的,但也有的像PHP和JavaScript是工程师在工作中随手发明的,也都流行了。我最近还听说一个新编程语言叫Jeeves,是麻省理工学院一个女研究生发明的。可是有没有编程语言是中国人发明的呢?似乎真没有。

发明好用、流行的编程语言似乎也不是什么了不得的事情,可是堂堂的信息大国,居然就没有。那是不是我国工程师的工作思路有点问题?我们非常希望用高级的工程技术赚高级的钱。几年前有个移动网络的“标准之争”,中国说我们这么大的市场必须搞一个中国标准,谁抓住了标准谁就能收取专利费,谁就厉害。可标准是从哪来的呢?难道不是应该你提供了一个众人都急需的解决方案,才需要制定新标准吗?
以赚钱为核心的思路恐怕还不是工程师的大道。工程师的大道应该是开创一个可供后人追随的新路线。标准、专利费和作为祖师爷的声望都只不过是副产品

最近我们非常关心中国怎么做,才能在芯片这个最尖端的领域赶超美国。很多人意识到,按照现有的芯片技术框架发展,一直跟在美国后面追赶的话,中国没啥机会—— 芯片是个胜者通吃的领域,中国擅长的价格优势和大市场优势都不存在。
我们需要一个“弯道超车”的机会。最好另起炉灶,中国主导搭建一个新框架。那这样的机会在哪呢?如果有这样的机会,我们有人准备好了吗?

《柏拉图和技术呆子》本书的一个主题是“分层”。信息技术最核心的思想就是分层,在每一层上有不同的范式,给工程师最大的创作自由。我们看看能不能从这个思路找到新机会。

用分层解决复杂性

Lee 做了个估算,运行在云端服务器上的一个软件,大约要调动10的24次方个晶体管。这大约是人类设计出来的最复杂的东西了。分层是解决复杂问题最好的办法。软件的底层是“指令集”。计算机直接能读的东西,是全是0和1组成的机器代码,比如像下面这样 ——0011010111010100。

最早的程序员就是这么跟计算机对话的。一般是在纸带上打卡。这么操作实在太复杂,所以工程师发明了“指令集”。有了指令集,我们就可以用“汇编语言”操作计算机,比如上面那行代码可以写成——cmp eax, ebx。

它的意思是比较两个字符串是否相同。现在最常用的是英特尔的“x86”指令集,它具有向后兼容的特点,确保新一代的机器能运行老一代的代码。

我非常不理解为什么现在大学仍然要求所有理工科专业的学生都学习汇编语言。可惜的是哪怕你将来的工作就是编程,你也不会用到汇编语言。

汇编语言再往上一层,才是所谓“高级”编程语言。这里“高级”的唯一意思就是这些语言是建立在汇编语言的层次上面的一层。比如我们常用的C语言、Fortran语言、Python、Java等等等等,这些才是给人用的编程语言。你用高级语言写个程序,它会被“编译”成汇编语言,然后再操纵硬件。你几乎就不需要考虑硬件,你面对的是纯逻辑模型。

再往上一层是“云”。在云这一层整个硬件都被虚拟化,软件实际在哪台计算机上运行已经没有关系了。比如 Google 存储了几十亿个网页的检索系统,这些数据存在于无数台主机上。当你搜索的时候,你不是跟一台计算机互动,而是在和“云”互动。

Lee在书中给了个不完全总结,从最底层到我们的日常应用,计算机技术至少可以分成下面这九层 ——

1.半导体物理学
2.晶体管数字开关
3.逻辑门
4.运算器代表的逻辑图
5.CPU代表的数字机
6.汇编语言、指令集
7.编程语言
8.各种可供调用的公共库函数
9.云计算

互联网通信协议,包括TCP/IP和SMTP等等,则是另一个用分层的方法解决复杂性的例子。

所有分层自下而上建立,每一层都建立在前一层的基础之上,而不提供它上面一层的功能。每一层的程序员完全不用考虑前面一层的事儿,这样就给了各层的工程师最大的自由度。那你说如果我掌控了一个底层技术,上面所有层岂不是都要从我这里出发?我不就建立了标准吗?我不就可以坐地收取专利费了吗?原则上的确是这样的。中国要搞国产通用芯片,就面临x86指令集的专利问题。

但专利壁垒并不是中国搞国产芯片真正的困难。模型都是人为的,如果仅仅是为了避开专利,你完全可以自己弄一套指令集。问题不在于别人允不允许你另起炉灶,问题在于你另起炉灶之后有没有别人跟进。分层模型是程序员们想象的共同体,而这个共同体现在已经无法撼动。这些层已经被历史沉淀成了文化,所有新产品都在这些层上生长。中国错过了计算机技术的奠基时代,我们来晚了。但是这也不是说中国就完全没机会了。有一种机会是建立新层。

2.应用层

苹果公司“发明” iPhone 的时候,并没有使用什么独创的新技术。iPhone用到的所有技术当时都已经有了,但是 Lee 认为,iPhone仍然是一个革命 —— 因为它解决了“机会危机”。
2007年,手机已经可上网,而人们不知道这代表什么新机会。难道说手机上网就是用手机浏览网页吗?iPhone 的真正革命性贡献在于APP开发平台。苹果在现有的技术之上又增加了一层,提供了一个新的开发环境—— 任何人都可以在这一层上开发手机应用。

今天我们用手机做的事情,十年前的人连想都想不到。微信和手机支付是重大的“范式转移(paradigm shift)”,它们在技术上是谁第一个实现的已经不重要了,它们可以说就是中国的创新。要论工程师的大道,能左右国运的创新还得跟“层”有关。

以前我们搞过一些行为艺术式的伪创新。比如说中国没有自己的编程语言,有人说要“发明”“国产编程语言”,结果就是把别人的语言给中文化而已。人家用个“if”,两个字符就能说明白的话,你非得变成“如果”,这有意义吗?没有任何意义。包括“国产操作系统”,也是这种思路。

你说我爱国,所以我要支持国产操作系统—— 可以。但从技术进步本身来说,把别人的操作系统重新包装一遍并不是创新。

革命的机会

Lee 看到了两个信息产业革命的机会。一个是现在的人们做所有事情、将来用的所有东西都可能上网,而网络在与人方便的同时,也影响到了个人隐私。方便和隐私之间有一个矛盾,那能不能用创新来解决这个矛盾,就是一个机会。这个领域现在有很多人讨论我们就不细说了,但是有一点值得说—— 前面说的那个 MIT 研究生发明的 Jeeves 语言,就是专门为隐私和保密数据编程的语言。

Lee 的另一个洞见可能对中国更有用。IT 技术的这个用分层解决复杂问题的方法,现在还没有被用到物理设备的制造中来。比如说造大飞机,现在就没有软件层面的分层。这里面有个根本矛盾。

普通计算机如果同时运行多个程序,那哪个程序先结束运行、哪个程序运行得快一点慢一点、都无所谓,其中没有什么时间协调。而飞机就不一样了。飞机各种部件的运动,是通过不同程序分别控制的。飞机的各种机械动作必须协调得非常好才行,每个控制程序什么时候启动、什么时候结束,必须分毫不差。可是这种时间协调不是通过什么“飞机操作系统”统一指挥的—— 各个参数都是在实验中分别微调出来的。

这就意味着芯片一旦调好就不能换了。新一代芯片的计算速度会不一样,原有的协调就会被打破。大飞机一旦设计定型,当初用什么芯片就得以后一直用这个芯片。飞机制造公司不得不买很多芯片长期备用,要保存好几十年—— 像空中客车公司甚至是用液氮保存芯片。

不但飞机,现在包括汽车在内,凡是涉及到物理操作的机械设备的计算机化,都存在时间协调的问题。我们急需一个“协调层”。我觉得这可能是中国的一次弯道超车的机会。中国是个制造业大国,而且恰恰正在制造大飞机,将来必定是这项技术的最大用户。不过美国已经有了一些积累,2006年就有了称为“赛博物理系统(cyberphysicalsystems)”的研究立项。

总而言之,现在中国面对的不是一两项关键技术,而是一个建立在分层模型上、树大根深的信息技术文化。除非有新的分层机会,你很难另起炉灶。“中国标准”不能刻意为之,最好抓住关键机遇,解决真问题,才有可能创造一个新体系,那才是真正的大国风范。

第四节:计算机科学眼中的世界

书的下半部分重点讲一个特别大的大道理,足以影响我们的世界观和人生观。这个道理来自深刻的数学,但是距离我们每个人又都很近。

工程师做的都是模型,计算机也是一种模型。但是对一个模型琢磨的久了,你难免就会觉得它不仅仅是一个模型。比如我们可能会问,人脑也是一台计算机吗

这种问题跟工程师怎么报效祖国没啥关系。可是作为一种智识上的兴趣,每个人都会忍不住关注这些问题。这个问题涉及到“图灵机”、信息论和“哥德尔不完备性定理”,你肯定早就听说过这些概念了,我们这里想给你一个统一的解释。我们将通过计算机科学的眼光,理解这个世界。

在回答人脑是不是计算机之前,我们要先问一个更大的问题—— 这个宇宙是计算机吗?

有一种猜想认为我们以为的这个“现实世界”,其实是某个更高智能的计算机模拟—— 我们其实是生活在一个网络游戏里。如果你觉得这个猜想太过离奇,我还可以换个说法:请问我们生活的这个现实世界,在理论上,可以用一台要多强大就有多强大的计算机来完全模拟吗?这个问题可不仅仅是个好玩的思想实验。我们需要理解计算机的本性,并且跟真实世界的本性做一个对比。使用计算机视角,你会重新认识这个世界。

而你可能想不到,这一切要先从“实数”开始讲起。

“实数”的不可思议
每个中学生都学过各种“数” ——
“自然数”是 0,1,2,3,……
“整数”是自然数加上负的自然数:……-3,-2,-1,0,1,2,3……
“有理数”则包括了分数和小数,但要求必须是有限的、或者是无限但是必须循环的小数 —— 本质上,所有有理数都可以写成分数,也就是两个整数相除:1/2,1/3,4/3 ……

在说实数之前,我先问你一个问题。你说到底是自然数多呢?还是自然数里的“偶数”多呢?

人的直觉反应肯定是自然数比偶数多。偶数—— 0,2,4,6,8,……—— 只是自然数的一部分,自然数里还有1,3,5,7这些奇数,整体肯定比部分多啊。但是请注意,自然数和偶数都有*无限多*个。无限多的两种东西,怎么比较多少 —— 无限大和无限大到底哪个大,这是一个问题。

德国哲学家格奥尔格·康托(Georg Cantor)曾经为此思考了整整12年。大概是1874年,康托提出自然数、自然数中的偶数、甚至一切有理数,都是一样多的。康托的洞见在于两个集合的元素如果能一一对应,那这两个集合的元素个数就一样多。

每个偶数除以2就是一个自然数,偶数和自然数可以一一对应 ——
0 ↔ 0,2 ↔ 1,4 ↔ 2,6 ↔ 3,……
同样道理,全体整数的个数也和自然数的个数是一样多的,因为我们可以把整数按照一定的规律“数出来”,也就建立了跟自然数的一一对应——
0 ↔ 0,-1↔ 1,1↔ 2,-2↔ 3,2↔ 4,-3↔ 5,3 ↔ 6,……
数学上这叫“可数”。一个包含无限个元素的集合只要是“可数”的,它就能跟自然数一一对应,它的元素个数就跟自然数一样多。

事实上,有理数的集合也是可数的。比如我们可以按照下面这张表格,把全体有理数列举出来——

无非就是把每个有理数都写成分数的形式,然后根据分子、分母的数字决定它在表格上的位置。只要按照图中箭头的方式,我们就可以把全体有理数数一遍。你一边数着有理数,一边数着自然数,这就建立了一一对应的关系:所以有理数也和自然数一样多。

现在轮到“实数”了。所有有理数都是实数,而实数还包括“无理数”,也就是小学老师所谓的“无限不循环小数”。无理数的特点是不能写成分数的形式,也就是不能用两个整数相除得到。比如根号2和圆周率π就都是无理数。

具体怎么证明我就不说了,但是数学上有个结论:无理数,是“不可数”的
也就是说,实数不能跟自然数做一一对应。虽然自然数和实数都有无限多个,但是这两个无限不是一个级别—— 实数比自然数要*多得多*。如果你说自然数是“无穷多”,那实数就是“不可思议的多”。
你可能会说,这些都是一百多年前的人就知道的数学,现在对很多人来说都是常识,那说这些有啥意义呢?意义就在于,实数是不可数的,而计算机的一切,都是可数的。

计算机的本质

先约定一下。本文里凡是说“计算机”,就都特指我们现在都在用的、基于图灵机的这种寻常的计算机。如果我想说另一种会做计算的机器,那就叫“机器”。

理论上讲,只要有足够多的内存、给足够多的时间,一台计算机就可以完成任何“算法”。但是计算机对算法有三个要求。这些要求就决定了,计算机和真实世界似乎是有区别的。

第一个要求是算法必须是“数字化”的。计算机所有的输入和输出,中间计算过程中涉及到的所有数,都必须是能用有限多个数字描写。也就是说要么是整数要么是有限位的小数。换句话说计算机只能处理有理数。比如说圆周率π。计算机里没有真正的圆周率。你要输入圆周率,只能输入一个有限位的近似的小数,3.141592653……到一定长度你必须停下。你可以用计算机把圆周率算到任意精度,但是总要在算到某一位的时候停下来。只要你停下了,你算的那个数就是一个有理数,而不是真正的π。

第二点要求是,算法是一步一步的,计算机不能算连续。所有计算机程序都按照“步”运行,这一步干什么、下一步干什么。你要模拟一个足球的运动,必须先把时间和空间分成若干“小步”,让足球每次走一步。当然你可以把步分得很细—— 但是一旦确定了步,一步就是一步,没有“半步”的中间状态。这是因为计算机的 底层是一个开关网络。晶体管要么是开要么就是关,没有半开半关的状态。真实世界好像不是这样的。你挥一挥手,让手从A点到达B点,这应该是一个连续的运动 —— 你的手似乎应该经历了从A点到B点之间每一个距离数字 —— 其中既有有理数也有无理数。而计算机模拟的你的手,只能经历有理数。

第三点要求是,图灵机必须停机。给一个算法,它一定要算出一个结果来。从这个意义上讲现在的计算机都不是严格的图灵机。比如我们用的个人电脑的操作系统,在理论上都可以永远不停机。你还可以跟电脑做交互式的操作,这就更不是图灵机了。而真实世界,当然也是交互的。当然电脑里运行的每一段代码,都符合图灵机的要求。关于图灵机的停机问题我们先不细说。

那么根据这些要求,计算机程序就一定是有限长的、而且是数字化的操作。事实上,所有计算机程序都可以翻译写成由0和1组成的代码,硬件层面就是这么操作的。
所以计算机程序必定是可数的。比如我们可以按照下面这个方法列举所有的计算机程序 —— 
0
1
01
10
00
11
000
001
……
规则是按照长度,在每个长度下列举0和1的所有排列组合。当然其中很多代码根本就不是正确的计算机程序,但这我们不在乎,我们只要确保这个数法已经包含了所有可能的计算机程序就行。
所以说,计算机程序的集合,是个可数的集合。那计算机能做的事情,就是可数的。

那请问,真实世界里的事情也是可数的吗?真实世界里有没有实数呢?
如果真实世界里有些不可数的事情,如果真实世界里有些数必须是实数,那计算机怎么可能完全模拟真实世界呢?

对以上问题感兴趣的并不仅仅是有趣的假设,而是这个宇宙的本性。就好像了解一些外国的事情会让我们更加理解中国一样,使用计算机的视角,会让我们更加理解真实世界。

计算机本质上是个处理信息的机器。那真实世界的信息,都能用计算机处理吗?关键还是在于“实数”。

再论信息论

我们说过了香农的信息论。香农认为信息就是意外,信息就是你克服了多少不确定性。可供选择的范围越广,这个选择的信息量就越大。所以信息量的大小、给信息量编码需要用到多少个“比特”,都取决于背后选项的多少。正所谓你“说了”什么不重要,重要的是你“能说”什么。
现在假设有一条一公里长的铁路线,咱俩负责维护。有一天,铁路线上出了线路故障。你去探测了,告诉我故障发生在第702米的地方。请问这个信息量有多大?一公里一共有一千米,你给我的是千里挑一的信息,这个信息量比五个人中选一个人要大得多。
要给这样的信息编码,我们就要把铁路线分为一千段,给每一段一个编码。下次不管哪里出事,我们都可以报一个编码。
好,现在上级要求提高精度,说必须得精确到厘米,比如说你得报告故障发生在第702.32米的地方。要给这么高精度的信息编码,我们就必须把铁路线分成10万段,这个编码量就大大增加了。那我们知道,从0到1000米的这条线段上不但有整数有小数,还有更多的、不可思议地多的无理数 —— 那如果故障发生地点是一个无理数,请问你怎么编码呢?答案是无法编码。

描写一个无理数,比如104.298730472840382048……(永不停止、永不循环)需要无限的精度!
有些无理数,像根号2和圆周率,可以用文字说明,我们可以报告上级故障发生在“π”米处,上级一听也能明白。但绝大多数无理数根本无法用文字描写!对于一个无法用文字描写的、出现在0和1000之间的任意的无理数,你怎么给它编码呢?从理论上讲,在连续实数集上的精确信息是不可编码的,“信息熵”的概念也不再适用了。

说到这里你可能要抗议了。你说我们根本就不需要用无理数标记位置,我们有限的精度就已经够用了啊!的确是这样。日常生活中的任何测量都有误差。不管你是702米,还是精确到702.0567287米,只要你停止了,就留有一定的误差。精确到小数点后第七位,就表示有0.0000001米的误差。

早在1948年那篇提出信息论的论文里,香农就已经注意到无限精度的测量信息不可编码,但是有噪音的、有误差的测量信息可以编码—— 现在我们把这个理论称为 “信道容量定理(channel capacity theorem)”。

所以我们的生活应该不受影响,毕竟凡是人为取用的信息都有误差,那就都可以数字化和信息化。但是从理论上来说,如果真实世界是一个连续的实数系统,它就不可能用一个数字化的信息系统完全描写。但是现在有很多人相信,真实世界根本就不是建立在实数上的!

第五节:数字宇宙

如果空间和时间都是连续的东西,无限可分,那真实世界就必须有无理数。但如果空间和时间本来就是不连续的呢?比如说,也许空间上存在一个最小的距离尺度,比这更小就没意义了。也许这个宇宙的空间就好像电脑屏幕一样,有一个分辨率—— 当然它的分辨率非常非常高,但是是有限的。这就是所谓“数字宇宙假设”。

我们常说宇宙必定是“数学”的,但可没说宇宙必定是“数字”的。“数学宇宙”允许无理数,如果有无理数就不可编码—— 而“数字宇宙”是建立在有理数上的,它在本质上就可以用计算机编码。

在数字宇宙里,空间是一格一格的,时间是一步一步的,都是不连续的。而我们现在所有的物理定律都假定时空是连续的、里面有微分方程,假设时空无限可分—— 所以这些物理定律都是柏拉图世界的想象,必须改写。

学者们对数字宇宙有不同的信仰,Lee 把这些信仰按照从弱到强的顺序,分为五级 ——
第一级认为这个世界可以用有限多的数字信息来进行完整的编码。
第二级认为这个世界里的一切都是信息。
第三级认为这个世界里的一切物理过程都是计算。
第四级认为这个世界就是一台计算机。
第五级认为这个世界不但是一台计算机,而且就是某个高级智能的一个计算机模拟 —— 我们都生活在网络游戏里。

那这个听起来很玄乎的假设,到底有没有可能是真的呢?答案是,有可能证明,但不可能证伪。

如果你能证明,空间的确有一个不能再分的、最小的尺度,那你就证明了数字宇宙假设。现在费米实验室有个装置叫“Holometer”,就打算做这件事。它使用和探测引力波的LIGO 装置类似的原理,通过激光干涉来测量距离的变化,它的目标是发现空间的最小尺度。

也许有一天早上起来,你就会听说费米实验室发现我们这个宇宙的空间有个极限尺度!那将是一个无比重大的新闻,说明空间不是连续变化的 —— 说明这个世界完全是由有理数组成的!……也说明我们很可能是生活在计算机模拟之中。

考虑到微观世界的物理学,把基本粒子再做细分并没有多大实际的意义,基本粒子的尺度是有限的。但是空间本身可不可以无限细分,这个问题还没有答案。如果人类的实验精度永远都发现不了空间的最小尺度,那你能说空间没有最小尺度吗?你不能。所以说数字宇宙是个不可证伪的理论。如果你信仰数字宇宙,你可以永远坚持这个信仰。

而你猜怎么着?在认真思考过数字宇宙假设的学者之中,相信的人是主流,不信的人是少数。为什么这些学者非得相信宇宙是数字的?也许因为数字化的世界更容易接受。计算机世界是数字化的,而计算机是人能造的东西,我们完全接受数字化的世界。但是 Lee 可不信。当然 Lee 也没有足够的证据,他只是觉得真实世界应该比一个由有理数组成世界更丰富一些。

你相信数字宇宙吗?我没有特别强烈的信仰,但我的确更喜欢存在无理数的世界。

比如说根号2吧。我现在还记得,第一次学到根号2这个无理数的时候,感到了世界观的危机。我就想,你画一个等腰直角三角形,两个直角边的边长是1米,斜边长度就是根号2米,对吧?那我就拿一个尺子去量斜边的长度,我肯定能量出一个普通的数来啊?根号2怎么可能就是一个怪异的数呢?

现实生活中尺子的精度总是有限的,所以你只能测量出一个寻常的数字。可是理想中的根号2,却是个永远都不会终止的数!

难道我们这个世界真的需要这样的数吗?这个问题可不仅仅涉及到世界观,而且还能影响你的人生观。只有在一个实数的世界里,人生才有无穷多丰富的意义—— 诗人,需要无理数。

第六节:哥德尔不完备定理

“数字宇宙假设”,既然是一个不可证伪的假说,也许我们就是生活在一个有限分辨率的、可数的、可以完全用计算机模拟的数字宇宙之中。但是今天我要说明这种宇宙的一个本质缺陷—— 而你会因此希望我们最好还是生活在一个实数世界之中

这个关键思想就是“哥德尔不完备性定理”。你可能早就听说过这个名词了,哥德尔不完备性定理大概是我所知道的最让人感到震撼的数学定理。我们今天不是讲数学,也不求完全解释清楚或者正确,只是做一个简明的解释—— 目的是让你通过这个定理对世界有个新的或者深刻的理解:当然,这是个不可能完成的任务。


“终极数学”的终结者
数学家研究问题的方法,跟科学家存在本质区别。科学家通过观察世界总结出来的规律常常有可能是错的 —— 但是数学家没有这种担心。数学家得出的结论都不是“总结”出来的,而是“证明”出来的,是建立在坚实的逻辑基础之上。

比如你考察了几个直角三角形,发现它们的直角边的平方和都正好等于斜边的平方,那你能据此就认为这是直角三角形的普遍性质吗?不能。你必须用严格的数学推导证明这个性质。证明了,才能把它称为勾股“定理”。

那证明定理的依据都是什么呢?有的是之前已经被人证明了的定理。那最初的定理是从哪来的呢?最初的定理就不叫定理了,叫“公理”。公理无需证明,是人们普遍认可的东西。

比如说,“两点之间只能有一条直线”,这就是一条公理。

数学家先认可几条公理,然后在公理的基础之上证明各种定理,数学大厦就算建立起来了。比如我们初中学的欧氏几何学,总共才只有五条公理。决定几何学大厦的不是那些五花八门的定理,而是这五条公理。

以上这些都是初中数学。现在我们快进到20世纪的数学。你肯定记得,证明一个数学定理常常需要巧妙的构思,有时候非常困难。那么在20世纪初的时候,有些数学家就有一个野心,说我们能不能找到一个机械化的方法,能够从最基本的数学公理出发,自动证明所有的数学定理

当时数学家重点考虑的是有关自然数的理论体系。比如哥德巴赫猜想就是有关自然数的一个论断,那数学家说,有没有一个机械化的方法,自动判断哥德巴赫猜想到底正不正确。如果这个方法找到了,那就没有后来的陈景润、也没有其他数学家什么事儿了,什么漂亮的证明都会被机械化方法无情碾压!等于是这帮人要抢后世所有数学家的风头。

数学家们努力了一番,貌似也取得了一些进展,人们充满雄心壮志。

可是1931年的一次会议上,一个25岁的年轻人,哥德尔(Kurt Friedrich Gödel),做了一个报告,说他证明了一个有关自然数公理系统的定理。据说当时冯·诺依曼就在报告现场,冯·诺依曼听完哥德尔的报告之后说了一句话:“全完啦(It’s all over)!”

简单地说,哥德尔证明了,在自然数的公理系统中,不但你们想要的那种机械化的证明不存在 —— 而且对有些命题来说,连“证明”本身,都根本就不存在!这就是“哥德尔不完备性定理”。

这个定理说,只要自然数的公理系统只有有限条公理,那么就一定存在一些命题,你既不能用这些公理证明它是对的,也不能判断它是错的。也就是自然数的公理系统是不完备的。数学家的整个世界观都崩塌了。

对哥德尔不完备定理的误解

在大幅度地引申这个定理的含义之前,咱们先小心一点,澄清一下人们对哥德尔不完备性定理的误解。有些人认为哥德尔证明了*一切*有限的公理系统都是不完备的 —— 这可就错了。不完备性定理只限于自然数系统
事实上,有一个数学家叫阿尔弗雷德·塔斯基(Alfred Tarski),他在1948年就证明了,如果是一个封闭的实数系统,那它就有可能是完备的、也是自洽的。比如欧氏几何就是一个关于实数的系统,塔斯基已经证明,欧氏几何系统—— 虽然仅有五条公理 —— 是完备的和自洽的。所以我们千万不要滥用哥德尔不完备性定理。

霍金的感悟

但是哥德尔不完备性定理的确说了,对自然数这个领域来说,你真的不能从有限的几条公理出发,推导出整个大厦。自然数世界里永远都有新东西等着你。

2002年,霍金在北京参加一个物理学家的大会,他在会上做了个领导讲话式的报告,就叫《哥德尔与M理论》。我们知道物理学家都在追求一个“统一理论”,希望能够一举揭示这个宇宙的终极秘密。但是在这个报告里,霍金把物理学理论和哥德尔不完备性定理做了一个类比,他说“也许要以有限数量的命题来阐述宇宙终极理论是不可能的。这和哥德尔不完备性定理非常相似。”

换句话说,霍金觉得,也许物理定律就好像自然数的公理集合一样,有多少条都不够。当然物理定律跟自然数的公理系统还是不一样的,为什么物理定律不是像欧氏几何一样是个完备系统呢?所以霍金这里只不过是表达了一种可能性而已。

但是这种可能性也许是个好消息。如果没有终极理论,我们对世界的探索就永远都不会停止。

哥德尔定理的内涵

我们前面说了,所有可数的系统都等价于自然数系统。那么哥德尔不完备性定理的本质就是说,一个可数系统自己,是说明不了自己的。

咱们打个比方,假设你作为新员工入职了一家公司。老板说我们是一家成熟的公司,一切行为都有章可循。这里有一本手册,你拿回去好好学习。以后不管遇到什么情况都要对照手册行动:手册说该做的你就做,手册说不该做的你就不做。

你一看这本手册非常厚,上面密密麻麻写了好几千条规定。老板非常得意。要是哥德尔遇到这家公司,他马上就会告诉老板—— 总会有一些行动是既属于你们公司的活动范畴,又是你这本手册无法判断它是对是错的!(事实上,哥德尔加入美国国籍的时候,官员让他谈谈对美国宪法的看法,他就指出了宪法中的逻辑缺陷)。有些事情,你必须得跳出手册之外,才能判断它对不对。

计算机算法是可数的。那仅用计算机算法的各种规则,能对所有算法做出判断吗?不能。有时候你必须跳出算法之外去看算法。可是如果宇宙就是个计算机,你又怎么可能跳出算法之外呢?

5.语言的局限

哥德尔不完备性定理给学术界开一个巨大的脑洞。后来有人证明了一个类似的理论,说任何一个可以写下来的语言系统,其中总会有一些语句,你用这个语言系统本身是无法判断其对错的,你必须得跳出这个语言才能判断

也就是说,如果你全部的思考都被限制一种语言里的话,有些事儿对你来说就永远不知道怎么做决定。你得跳出这个语言才行。你得有一些在这种语言之外的意思才行。所以不管多么精细的语言,都是不完备的。

好,我们上一讲说了,如果大脑是个实数系统,那我们有些思维就是不可数的,就不能完全用任何一种语言描述。那如此说来,我们就有可能跳出这个语言,用“只可意会不可言传”的思维做出高级的判断。这就是为什么实数宇宙比数字宇宙好。

任何一个语言的句子都是可数的,所以每个语言都是不完备的。文字是可数的,但文字背后的意思可以是不可数的。但如果你的思维是不可数的,你就总是可以创造一个新的语言去描写那些可以感知到、但无法用旧的语言描写的东西。而 Lee 认为,新语言的种类也许是不可数的。

当一台盯着手册看的 AI 不知道怎么办好的时候,因为你的思维不可数,你可以跳出手册做决定。考虑到哥德尔不完备性定理,我拒绝接受有可能让我盯着手册看不知道怎么办好的设定。

现在我们总结一下。计算机系统本质上是一些可数的东西,符合哥德尔不完备性定理的条件。哥德尔不完备性定理说,在这样一个封闭系统中,总有一些语句是这个系统本身所无法判断对错的。这就意味着如果我们身处的是一个数字宇宙,如果我们的大脑都是计算机,那迟早有一天,我们会发现对这个系统我们能想明白的东西都已经想明白了,剩下的都是永远都不可能想明白的

从那一天开始,我们将永远浑浑噩噩地活着。

但如果真实世界是实数的,人脑不是计算机,那我们就有可能随时跳出任何能写成文字的认知系统。我们永远都有一个只能意会、不可言传的思路。我们可以不断地跳出旧系统,探索新知识、发明新语言,建立新系统。科学家永远可以琢磨新的物理定律,艺术家永远可以创造新的意境,工程师永远可以发明新的模型。

实数的世界是我们用语言所无法穷尽的。这大约有点像咱们中国人说的“道可道非常道”。写到这里我又想起来一句中国话叫“纸短情长”,似乎也符合哥德尔不完备性定理的精神:不管我写多长都无法表达对你的,那就把这本书的解读暂时停在这里,剩下的都尽在不言中吧。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多