Limboy

Alan Kay: The Center of Why

这是 Alan Kay 在 04 年写的一篇长文。可能有部分同学对 Alan Kay 不是很熟悉,先做一个简单介绍:

艾伦·凯(Alan Kay)是近当代计算机革命之先驱,他有一句广为人知的名言:预测未来的最好的办法就是创造未来。

三岁就能阅读,五岁便会自学,等到上小学的时候,已经读了上百本书。到现在(77 岁),已经读了大约 20,000 本书,有一份推荐阅读的书单

京都奖(号称日本的诺贝尔奖)和图灵奖获得者。Smalltalk 面向对象编程环境语言的发明人之一,也是面向对象编程思想的创始人之一,同时,他还是笔记本电脑最早的构想者和现代图形用户介面 GUI 的建筑师。也最早提出了 Dynabook(后来经过演变就变成了我们今天的笔记本电脑)的概念。当年就乔布斯就是在看到了 PARC 里的这些作品后,下定决心往 GUI 方向发力。

老爷子对儿童教育非常重视,这也直接激发了他发明新的编程语言和图形视窗系统,希望每个孩子都能有一个笔记本大小的电脑,在软件里建造和模拟他们自己的真实世界模型,并让他们实验、修补、评价和观察这些模型的行为特征。不过用他自己的话来说,他对儿童教育并没有特别大的热情,对于培养优秀的成年人兴趣更大。

现在 Alan Kay 会参与到 YC 新创建的 HARC (Human Advancement Research Community) 项目中,这个项目的使命是通过发明新技术,传播知识和想法,让人们可以看得更远,理解地更加深刻。跟当年的 PARC 有点像,后者由于辉煌时期的原班人马已基本走光,虽然现在独立了出来,也很难再现当年的风采了。

忘了怎么接触到这篇文章了,看完收获不少,不敢独享。这里做了精简的翻译,感兴趣的同学还是直接看英文原文吧,内容会丰富不少。


更多的书

在上学之前就读了很多书,发现对同一个观念往往会有很多不同的解说。「there was more than one point of view」,所以不要急着接受某个观点。

然后上学后,发现学校里每个领域只有一本书,也就是老师手里的那本权威书。结果由于准备工作做得过于充分,经常会提各种问题,比如「我在其他书上看到过不是这样的,它也可以是这样···」,自然就被打入冷宫,他倒也不埋怨,反正要学什么看书就行了,不太需要老师。

9 岁遇到了第一个好老师

在这个老师(看起来应该是个物理老师)的课堂里的教室后面放着一张桌子,上面放着各种工具、线、电池、书,她也不说这些是拿来做啥的。好奇的 Kay 拿来了干电池、电线、钉子、回形针做起了电磁感应实验。

在成功地吸起回形针后,Kay 同学很兴奋地叫了出来,然后惊讶地发现老师居然没有骂他,而是问他怎么做到的?书里还提到了什么?当他表示下一个要做电报机时,询问了有没有感兴趣的同学一起来做,然后下午找一段时间一起来搞(20%的 Side Project 时间)。

后来有一半以上的同学都参与到了项目中,而且越来越早地来到学校,这样就可以花更多的时间做项目。

也是这份经历让 Kay 意识到应该如何进行基础教育:让孩子们参与到感兴趣的项目中,同时融合数学、科学、艺术在其中。

They need to go through many of the same processes of discovery in order to make new ideas their own.

The Center of “Why?” is Art

我们创作的所有事物都可以被称作艺术。科学和技术也都是艺术,只是形式不一样。

「科学的艺术」就是找到不被愚弄的方式,让不可见变得可见,创建最能反映实际情况的理论。

科学不容易被直观地表现,因为只能借助数学、物理或者计算机等非大自然原产物来揭示。

科学介于「背后的真相」和「描述背后的真相」之间

这两幅地图都有细节,且精心绘制。不同的是右边是真实的地图(印度),而左边是指环王里的地图。很难通过肉眼来区分哪个是现实中的地图,需要借助额外的手段,也就是「科学的艺术」。

以重力为例,它就像一只小兔子,在幕布上的投影就是我们在地球上的感知和量测。我们可以构建一个模型,同样能形成兔子投影,以牛顿的万有引力理论为例,他通过数学来阐述模型,但如果仔细观察会发现真实的兔子投影尾部是一个小圆球,而牛顿的模型尾部是粗长手臂的投影。

这个「手臂投影」需要花一点时间去发现,比如水星的公转轨道不符合牛顿定律,所以牛顿的万有引力模型并不完美。(为了把小兔子尾部的小圆球补上,爱因斯坦采用了跟牛顿截然不同的方式)

在最近的几百年里,通过科学,我们发现直觉往往是不准的:我们在不停地愚弄自己。所以尽量避免通过感觉来做判断和行动,多思考一下,不然很容易导致错误的结果。

科学让不可见变得更加可见,而我们对于自己却往往视而不见。很多人生活在自己的故事和社会里,对于自身、环境甚至地球都很危险。所以教育的职责除了教授知识、技能之外,更重要的是传授「让不可见变得可见」的能力。

只有意识到自己看不清,看不全才会学着去发现。教育就是帮助人们认识到自己视野的局限性,同时教会他们如何看得更清楚一些。

数学之美

数学概念往往很难向一个普通人解释清楚,但有一些却可以阐释得很明了。比如 2500 年前对勾股定理的证明(想要了解更多的可以参考这个帖子

证明过程直观且简单,很美。

计算之美

计算难免会涉及到数学,在看到 John McCarthy 的 LISP 语言后,Kay 觉得这门强大又优雅的语言充满了魅力,看待事物的角度奇特又深刻,就像麦克斯韦的电磁方程。对他之后的想法产生了很多影响。

在大学时看到了图形编程系统(Sketchpad),愈发觉得计算机可以做的事情会很多且很不一样。后来又接触到了 Simula 语言,同时结合自己的数学和微生物背景(没错,他大学的专业之一是微生物学),他有了这么个想法:

我假定未来理想的计算机能够具备生物组织一样的功能,每个‘细胞’能够独立运作,也能与其他功能一起完成复杂的目标。‘细胞’能够相互重组,以解决问题或者完成功能。

围绕着这个想法开始设计系统,进行各种试验,当别人问起他在干什么时,他回答:面向对象编程。

Doug Engelbart 和他的交互世界

Doug Engelbart 创建了 NLS 系统,这个系统包含了导航控制器(鼠标前身)、超文本、图形、命令行输入等,描述了一个可交互的计算机应该是怎样的。

导师介绍了 Ed Cheadle 给 Kay 认识,这位同学试图把计算变得更小,小到可以放在桌上,同时可以交互。然后两人一拍即合,开始研发 FLEX Machine,目标是个人计算机。它被构思成长这样:

当时是 1968 年,距离 Macintosh 1 发布还有 16 年。

在探索可交互计算机的用途时,遇到了 Seymour Papert 和 LOGO 语言,发现可以通过计算机向儿童更直观地阐述抽象概念,比如数学。Kay 被这个想法震撼到了,觉得这是计算机的正途。于是开始构思类似 Flex 的机器,不过面向儿童,名字叫 Dynabook。把编程语言与游戏结合来表达数学之美。所以计算机除了作为工具,还可以作为展示的平台。(可惜这个本子最终没有做出来,不过也算是笔记本的先驱了)

这就需要一门新的面向对象编程语言,为了向人证明只需半页就能将当时世界上最强大的编程语言描述清楚,两个礼拜之后,Kay 做出了 Smalltalk 的 kernel。一个月之后和同事一起研发出了可以正常工作的高级、简单又强大的面向对象编程语言。

几个月之后,Dynabook 的过渡态产物 Alto 诞生了。1975 年,已经有上千台 Alto 计算机在学校中被使用了。(第一代苹果电脑正式发行在 9 年后)

之后的几年时间里,PARC 的研究人员各自钻研自己的领域,并且取得了不错的结果,对于推动计算机及互联网功不可没。(这些重要的工作主要是由 25 个科学家完成的)

孩子们能做些什么?

孩子们是天生的艺术家,如果要教育他们,要保护好他们的艺术思维,先让他们对某个想法产生兴趣。

比如可以让他们结对组成小项目组(10 人左右),设计汽车,并通过调整参数和一些简单的编程,让这辆车按自己的意愿跑起来。

在这个过程中可以传授类似「加速度」这样的知识点。

模拟复杂模型

可以通过图形化编程,让计算机来模拟复杂的系统,比如传染病或者谣言。也可以用来模拟重力或弹性。甚至对现实中的桥梁建模,通过模型来模拟各种极端场景,以此来验证桥梁的可靠性,避免完工后出现各种故障。

「要了解世界,必须构建世界」,通过计算机可以对真实世界进行建模、调整、优化、实验,可以更好地表达自己的想法,这不也是一件很 Romantic 和 Art 的事情么?