经历过简单的显性实验后,我的哲学观点也发生了改变。我意识到将软件视为真实的存在是多大的错误。比特是真实的,因为它们可以在芯片中进行测量或传输;人们也是真实的,比特仅仅是因为人才有意义。
我曾经说“信息是异化的经验”,也就是说,人们将比特输入计算机,或者从计算机提取比特时,比特基于人们的经验才有了意义,如果没有人类的文化和解释,比特就毫无意义。
另一种说法是,对外星人来说,智能手机和熔岩灯没有区别,随着内部程序的运行,两者都会越来越热。
我在费米悖论中找到了支持这一观点的依据。我们在夜空中进行筛选时,为什么会看不到宇宙中其他生命的证据呢?也许是因为没有共同的文化,我们很难识别出其他生命。我们所认为的噪音,对外星人来说可能就是文学。[17]
一旦你认识到比特从来没有其内在的意义,计算机的完善就会更加容易,因为剩下的唯一标准就是“为人设计”。
这种思维方式提升了人类的地位。我们一定有特别之处,我可以接受这一点。
[1] “高级”这个词的意义不准确,但它通常意味着离比特更远,离描述比特是什么的抽象表述更近。
[2] https://alvyray.com/CreativeCommons/AlvyRaySmithDawnOfDigitalLight.htm.
[3] 典型的(非量子)计算机内部只是一堆或开或关的开关。我们把这些开关叫作比特,将它们描述为位于零或一的状态。计算机在运行时,开关会开或关很多次。这就是计算机里发生的一切。剩下的就是我们感知周边设备时做出的解读,比如一串比特在屏幕上可以显示为图像。
[4] 解释程序与编译程序类似,是一种特定的计算机语言,也与文本代码固定的词汇和语法相关。但解释程序不在计算机比特上直接运行,而在模拟计算机上运行,模拟计算机则是在真正计算机上运行的程序。这意味着解释程序支持更改运行中的程序,因为真正的计算机没有在运行代码(所以不用担心真正的计算机会死机)。解释程序的缺点在于,因为它是间接的,所以可能很慢。更重要的缺点与编译程序一样,解释程序无法改变运行中的抽象对象,因为抽象对象固定在语言设计中。
[5] 通常,我们可以迅速完成小的变化,实时改变体验,但是不同调整的系统开销会不同。
[6] MAX看起来像是通过网线连接起来的一堆散落的小盒子。MAX大致模拟了鲍勃·穆格(Bob Moog)和唐·布赫拉(Don Buchla)设计的老式合成器的编程体验(通过将大量电线插入框架内金属盒中的插座完成操作)。
MAX的名字是向在贝尔实验室发明数字音频的马克斯·马修斯(Max Mathews)致敬。当马克斯还活着的时候,每周四,我们和唐·布赫拉、汤姆·奥伯海姆(Tom Oberheim)、罗杰·林恩(Roger Linn)、基思·麦克米伦(Keith McMillen)、戴维·韦塞尔(David Wessel)以及其他电子音乐产品的先驱者,都会在伯克利大学吃早餐。他们和鲍勃·穆格是我进入VR行业时的榜样。
[7] 这类似于创建无须提前设定就可以探测和使用设备的程序。相关成果的例子见https://cacm.acm.org/ magazines/2017/2/212445-model-learning/fulltext。
[8] 深度学习指可以识别图像和其他自然数据的算法,目前这一术语仍在变化。在本书回忆起的时期中,人们更倾向于使用“模式识别”,而在21世纪,“机器学习”变得越来越受欢迎,因为它与基于访问更大规模数据库的更有效的想法有关。最近,深度学习也受到大量关注,它与实现更有效算法的另一步骤相关。当科学家试图将自己的进展与前几代算法区分开来时,就会产生不断变化的术语。因为这些算法和相关术语的差异对显性系统来说并不重要,所以我没有严谨地使用这些术语。
[9] 20世纪80年代的显性实验依赖于方案。方案中会描述你将在虚拟世界或屏幕上看到的一切,包括房间、化身、文本、窗口和图标。里面包含5个原词,每个原词描述了一种视觉/空间关系,如遏制或秩序等。我们使用这种系统描述和渲染了一切,甚至包括对传统源代码的模拟,尽管里面没有任何源代码,只是机器语言(运行程序设置的比特模式)到屏幕内容的具体映射。
[10] 应用程序接口(API)是目前封装用于连接程序的抽象层的常见方式。
[11] 显性系统的原型包括隐藏在机器中的实体小屏幕和摄像头,这样就可以实现物理上的气隙。
[12] 在我看来,问题在于苹果Mac OS系统的缓慢变化。
[13] 为避免混淆,我需要说明的是,硬件不是造成差异的原因,真正的原因在于它们的连接不必完全遵循数字生态系统的协议等其他方面。显性软件也有同样的好处。
[14] 如果能够建立大型显性系统,那么一个典型的显性系统可能包含许多类似但不同的编辑器的冗余并行路径。(类似于我们今天认证用户的多重方式,除了输入密码外,还可以拨打他们的电话。)
一旦编辑器的两条或两条以上的路径产生了可比较的中间结果,特殊编辑器就会对这些路径进行比较。冗余将弥补不精确统计连接的不确定性。
除提高可靠性外,冗余也将支持架构的大规模系统性适应,而不仅仅是算法的大规模系统性适应。
编辑器和编辑器集合将通过冗余相互测试,从而改善整个系统。如果某条路径更为有效,它就会成为优先选择,并且可能会影响新路径的设计。
这一机制让人想起生物族群遗传多样性的价值。
工程师已经在用这种方式完善算法了,但还没有涉及算法间的连接架构。这种遗漏将通过显性系统进行纠正。
[15] 不是所有程序都会这样,只有可表达行为范围受限的程序才会如此。
[16] 我认为加密是一种文化形式,是解释比特的一种方法。因此我们无法察觉带有加密信号的外星人,但区分加密和纯粹的外星人语言,目前来看没有实际意义。
[17] 这是对拉里·特斯勒(Larry Tesler)在20世纪80年代著名的车牌号码“NO MODES”(意为“无模式”)的模仿。模式会让软件更加难用。拉里·特斯勒发明了我们数字世界的浏览器等很多我们熟悉的元素。