工程师的大道

发布于 2019-09-17  157 次阅读


本文摘自精英日课第二季解读的《柏拉图和技术呆子:人类与科技的创造性伙伴关系》

什么是工程师

有个笑话是这么讲的。面对一个装了半瓶水的瓶子,乐观主义者说,瓶子已经半满了!悲观主义者说,唉,瓶子还有一半是空的……

然后一个工程师说,嗯?这个瓶子其实没必要做这么大,只要一半大就够了。

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

很多时候工程师只是在应用现有的科学理论。但历史上也经常发生的事儿是工程师已经把东西做出来了,科学家还没搞清楚原理。比如喷气式发动机。你要在百度搜索,很多网页会信誓旦旦地告诉你喷气式发动机的“原理”是什么 —— 其实这个原理到现在也没完全搞明白。工程师只是不断地试错、鼓捣,喷气式发动机不是在哪个科学理论的指引下发明的。

从欧姆定律说起

可能很多人认为欧姆定律是柏拉图世界的真理(柏拉图洞窟寓言)

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

欧姆定律不是真理,我们可以称它为解释真实世界的一个模型。牛顿力学不是真理、爱因斯坦场方程也不是真理 —— 它们都是柏拉图世界投射到我们这里的影子。

模型都是错的,但是有些模型很有用。

爱迪生可以根据欧姆定律去找到电阻大的钨丝,来造灯泡。

==工程师思维的大道,就是先创造一个好模型,然后想办法实现这个模型==。

模型与分层

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

可以说,模型,是工程师们“想象的共同体”。

我们来拿最新特别火的芯片事件来举例。

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

==芯片,是模型的模型的模型的模型。==

香农的洞见

香农是位大神级的人物。1940年的香农才22岁,在麻省理工学院获得硕士学位,毕业时他写了一篇硕士学位论文。这可能是历史上应用最广泛的一篇硕士论文。在这篇论文里,香农解释了怎么用最简单的开关,实现一切逻辑运算(即与或非门)。

香农告诉我们两件事:

==第一,所有这些基本逻辑门都可以用晶体管搭建。第二,用这些逻辑门组合,就可以实现各种运算。==

不管 CPU 有多复杂多高级,它也是用各种逻辑门组成的,而逻辑门是用开关做的。所以整个 CPU 就是一个开关网络!开关的功能是如此的简单。它只能根据两种命令完成两个动作,它是纯机械化地事,没有任何智能。但是亿万个这样的开关组成在一起,就是 CPU,就能运行软件,就能实现人工智能。

CPU的模型分层

我们总结一下,这整个过程包含了四层的模型 ——

  1. 最底层的是半导体物理学,
  2. 晶体管开关,是建立在半导体物理学上的模型,
  3. 逻辑门,是建立在开关上的模型,
  4. CPU,是建立在逻辑门上的模型。

这种结构的好处是

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

软件的分层

  1. 汇编语言、指令集
  2. 编程语言
  3. 各种可供调用的公共库函数
  4. 云计算

所有分层自下而上建立,每一层都建立在前一层的基础之上,而不提供它上面一层的功能。每一层的程序员完全不用考虑前面一层的事儿,这样就给了各层的工程师最大的自由度。

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


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。