← 所有文章

工程哲学:Alan Kay,真正的大主意是消息传递

Alan Kay,计算机科学家,面向对象编程与个人计算机的先驱

核心要点

  • 真正的大主意是消息传递,而非对象本身。 Kay 后悔当初造出了”对象”这个词,因为它把人们的注意力引向了类与继承——那才是次要的主意。真正重要的,是一些彼此独立、相互发送消息的事物,并且由接收方来决定一条消息意味着什么。
  • 转换视角,抵得上 80 个智商点。 你无法在错误的框架里靠更聪明去攻克一个难题;你要做的,是找到那个让难题变得简单的框架。对软件而言,消息传递正是这样一步。
  • Dynabook 把计算重新定义为思考的媒介, 而不是完成任务的工具——那是 1972 年就勾勒出的笔记本电脑与平板电脑,其目的是让人能够思考此前无法思考的念头。
  • 晚绑定才是换来独立性的关键。 正因为发送方并不知道接收方会如何应答,各个部件才能各自变化而不会彼此破坏——而这恰恰是一个系统得以成长、超越单个头脑所能容纳之极限的方式。

这一原则

“我很抱歉,很久以前为这个主题造出了’对象’这个词,因为它让许多人把焦点放在了次要的主意上。真正的大主意是’消息传递’。” —— Alan Kay1

是他造出了这个词,他获图灵奖也在很大程度上是因为它,然后他又花了数十年告诉人们:你们理解错了。对象 这个词让工程师想到的是类、继承,以及他们数据模型里的那些名词——盒子里的家具。Kay 的意思是,家具才是次要的主意。真正重要的是 盒子,以及 盒子之间的消息:一些彼此独立的事物,各自持有自己的私有状态,只通过相互发送消息来交互,而且由接收方、而非发送方来决定一条消息意味着什么。1 这就是被提升为一种哲学的晚绑定。发送方不会伸手进去操作内部的机械装置;它只是发问,并信任那个事物知道如何应答。

之所以说这才是大主意,是因为它正是你用来构建那些大到无法装进脑子里的东西的方式。Kay 反复使用的比喻来自生物学:一个大型系统应当像身体那样被”养大”,由数以百万计的细胞构成,每一个细胞都是一台完整的计算机,保护着自己的状态,只通过消息与邻居交谈。2 没有哪个细胞会伸进另一个细胞的化学反应里。整个有机体之所以稳健,正是因为 各部分相互独立,唯一的耦合就是它们交换的消息。按 Kay 本意去做的面向对象编程,并不是一种组织数据的方式——它是一种用许多相互协商的小事物来构造系统的方式,从而没有任何单独的一块需要理解整体。

这一切底下更深的一步,是一种面对问题、而非面对代码的姿态。转换视角,抵得上 80 个智商点,Kay 喜欢这么说。3 你无法靠在错误框架里更聪明来攻克难题;你要找到那个让问题变简单的框架。消息传递就是这样一个框架。个人计算机是另一个。”正确的视角胜过纯粹的聪明”这一信念,与品味是一套你可以审视的技术系统、而非你随口断言的某种感觉这一论点底下的信念,本是同一个——你选择透过哪种结构去看一个问题,本身就是工作。

背景

Alan Curtis Kay 于 1940 年 5 月 17 日出生在马萨诸塞州的斯普林菲尔德。4 他走上计算机这条路既晚又偏——他曾是爵士吉他手,也是个嗜书如命的孩子,曾在空军服役,一次能力倾向测验把他引向了编程,之后才在科罗拉多完成了数学与分子生物学的学位。4 生物学很重要。那个日后组织起他整套软件理论的”细胞即计算机”比喻,正是来自这里,而非任何编程传统。

1960 年代中期,他来到犹他大学由 ARPA 资助的计算机科学项目,他的博士导师是 Dave Evans,周围的教员中包括 Ivan Sutherland。4 大概就在报到第一天,Evans 递给他 Sutherland 1963 年的 Sketchpad 论文让他读。Sketchpad 让用户能用光笔直接在屏幕上作画,而且——这一点至关重要——它有 母本(masters)实例(instances):你只定义一次形状,然后冲压出一份份继承自它的副本。Kay 把这篇论文、以及他不久后接触到的 Simula 语言,都视为自己关于对象之思考的种子。4 他还参加了 Douglas Engelbart 1968 年那场”演示之母”——对鼠标、超文本与交互式计算的现场演示,他后来称之为自己一生中最伟大的体验之一。4 他 1969 年的博士工作 FLEX 机器与语言,便是围绕这些理念构建一台个人化、交互式计算机的早期尝试。4

1970 年,他加入了刚刚成立的施乐帕洛阿尔托研究中心(Xerox PARC),并被委以执掌”学习研究组(Learning Research Group)”。4 1970 年代的 PARC 是一个罕见的地方:在那里,一名研究者可以靠着企业的预算去追求一个长达二十年的愿景。Kay 心中就有这样一个愿景:不是更快的大型机,不是更好的终端机,而是一台孩子也能当作思考媒介来使用的个人计算机。他在 PARC 构建的一切——Smalltalk、窗口化界面、乃至笔记本电脑这一构想本身——都是为实现那一幅图景所做的尝试。

工作

Smalltalk 与消息传递:OOP 真正的含义

在 PARC,Kay 和他的团队——核心人物包括完成了奠基性实现的 Dan Ingalls,以及构建了大量周边系统与文档的 Adele Goldberg——创造了 Smalltalk,这是最早的完全面向对象、动态的编程语言之一。45 在 Smalltalk 里,一切 皆是对象,而对象唯一做的事就是相互发送消息。没有任何运算符能伸进另一个对象的状态里;连算术都是发给一个数字的消息。这套系统采用动态类型,并且极度晚绑定:一条消息究竟 做什么,是由接收方在它抵达的那一刻才解析的,而非由发送方提前定死。5 正是这种迟到的解析,让一个正在运行的 Smalltalk 映像能够在运行中被编辑——语言与它的环境本就是同一个活生生的东西。

Kay 后来把他对面向对象编程的真正定义提炼为三条要求:消息传递;状态-过程在每个对象内部的局部保留、保护与隐藏;以及一切事物的极度晚绑定。1 请注意清单上 没有 什么:类、继承、类型。那些都是实现上的便利。不可妥协的是:状态必须私有,一切都尽可能晚地决定。当他说”面向对象”这个词是他造的、而他”心里想的并不是 C++”时,他指的正是这一点——一门语言可以拥有类和继承,却仍然完全错失要旨,只要它允许一个对象伸手进另一个对象的内脏。6

之所以承重的主意是消息传递、而不是对象,是因为消息传递才是让独立性成真的东西。如果发送方知道接收方的内部,二者就会被焊死在一起,你又回到了一个庞大而缠绕的程序。正因为发送方只是发出一条消息、由接收方决定如何应答,你才能在不触碰发送方的情况下替换、扩展或养大接收方。让身体能够愈合伤口、让网络能够绕过一个失效节点的,也正是这同一种特性。Kay 希望软件能像生物那样扩展,而生物的扩展靠的是受保护细胞之间的消息,绝不是共享内部。

Dynabook:作为媒介的计算

一张 Dynabook 概念草图/模型——Alan Kay 心目中那台"献给所有年龄段孩子"的个人计算机

1972 年,Kay 撰写了《一台献给所有年龄段孩子的个人计算机》,在波士顿的 ACM 全国大会上发表,其中他描述了 Dynabook:一台便携的、笔记本大小的个人计算机,配有平板屏幕,能装下一个孩子的整座图书馆、音乐、画作和程序,由个人 拥有,随时随地使用。7 他把它画成一块约莫笔记本大小的薄板,并论证说,凭当时的技术原则上就能造出来,而且能卖得便宜。7 当时并不存在这样的机器。个人计算机当时还不存在。他是在 1972 年描述笔记本电脑和平板电脑。

但 Dynabook 从来都不真的关乎硬件。它关乎计算 是为了什么。Kay 的框架——取自 Jerome Bruner 的学习理论,以及 Seymour Papert 用 Logo 所做的工作——认为计算机是一种新的 媒介,如同书写或印刷术,而媒介的意义在于让人能够思考此前无法思考的念头。47 一本书你只能读;一台 Dynabook 你能在其中 创作模拟。一个孩子应当能够搭建一个关于某种想法的动态模型,并看着它运行。这正是它为什么必须是个人的、便携的、被拥有的:思考的媒介必须始终触手可及,就像一本笔记本那样,否则它根本就不算媒介。Kay 所构建的一切,都源自把计算机当作媒介、而非工具来对待。

PARC 的图形界面与”发明未来”

Alan Kay 在演讲

Dynabook 需要一个孩子也能使用的界面,于是 Kay 的团队造了一个出来。那种层叠窗口式的图形用户界面——窗口像桌上的纸张一样叠放,用鼠标点击就能把某一张弹到最前——是在他位于 PARC 的学习研究组里开发出来的,运行在 Xerox Alto 上,团队把这台机器称作”临时 Dynabook”。48 你用过的每一个桌面,都是那项工作的后裔。1979 年 12 月,Steve Jobs 和一群苹果工程师造访 PARC,看到了运行着 Smalltalk 的 Alto:位图显示、鼠标、层叠窗口。8 这些理念进入了 Lisa,随后进入了 Macintosh,再由此进入 Windows,进入计算的主流。8 如今全世界都在使用的界面,当初是为了服务于”孩子在一种新媒介中创作”这一愿景而构建的。

驱动这项工作的座右铭,是 Kay 最常被引用的一句话:“预测未来的最好方式,就是把它发明出来。” 他说这句话出自 1971 年初 PARC 一次研究者与施乐规划人员之间的会议——“一时激情上头,我说出了那句话”——当时规划人员想要预测,而 Kay 的回答是:对于一个你打算亲手构建的未来,你不去预测它。9 PARC 就是这句话付诸实践的产物:Kay 的团队不去问计算机将会变成什么,而是决定计算机 应当 变成什么,然后花了十年把它造出来。个人计算的未来不是在 PARC 被预测出来的,而是在那里被有意地发明出来的。

计算机革命尚未发生

1997 年,Kay 在 OOPSLA 做了一场题为《计算机革命尚未发生》的主题演讲,它是对那个凯旋叙事必要的反制。10 他的论点是:业界拿走了 PARC 愿景的 制品——窗口、鼠标、个人机器——却错失了那个 主意。他说,个人计算在很大程度上变成了对纸张的自动化:数字文档、数字邮件、数字文件柜,是在模拟旧媒介,而非成为一种真正崭新的媒介。他所说的那场革命——计算机作为一种放大人类思考的媒介,让普通人能够像写作那样去 编程——并没有到来。桌面隐喻赢了;Dynabook 的主意没有。

制品与主意之间的鸿沟,成了他晚年毕生的批判。通过他于 2001 年创立的 Viewpoints 研究所,Kay 强烈反对现代软件的臃肿:动辄数千万行代码去做一些他认为只需其中极小一部分就能做到的事——只要系统是由干净的、消息传递的部件养大的,而不是由谁也无法完全理解的库堆积而成。411 他的”STEPS”项目试图用大约两万行代码重建一整套个人计算系统——操作系统、应用程序、一切在内——作为一个存在性证明:臃肿是一种选择,而非必然。11 消息传递的信念一路贯穿到这一抱怨:一个你无法理解的系统,正是一个其各部分未能真正独立的系统。当边界开始渗漏,臃肿就随之而来。

方法

这套方法在五十年里始终如一——一门语言、一台机器、一个界面,和一场批判。

找到那个让问题变简单的视角。 Kay 的第一步从来不是正面强攻一个问题,而是改变它所处的框架。用消息传递取代过程;用媒介取代工具;用细胞取代代码。”80 个智商点”那句话,就是把这套方法浓缩成了一句口号:杠杆在于视角,而非力气。3

用相互发消息的独立事物来构建,而不是相互调用的过程。 构造的基本单元是一个对象,它保护自己的状态,只暴露消息。你养大一个大型系统的方式,就如同生物养大一个有机体——由许多小的、独立的、消息传递的部件组合而成——这样没有哪一块会依赖另一块的内部。12

尽可能晚地绑定。 在最后一个负责任的时刻才做决定。晚绑定让系统保持足够柔软、能在运行中改变,也让发送方对接收方的内部一无所知。早绑定换来速度,却放弃了那种让系统得以成长的独立性。1

把计算机当作人类思考的媒介。 Dynabook 的标准不是”这个工具能为某项任务做什么?”,而是”一个人现在能思考、能创造、能模拟出哪些他此前做不到的东西?”这个问题把整项事业从自动化重新定向为放大。7

去发明未来,而不是去预测它。 当被要求预测时,改为做决定。PARC 的纪律就是:选定你想要的那个世界,然后把它造出来,凭的是这样一个信念——一个被追求了十年的愿景,胜过任何预测。9

影响链条

谁塑造了他

Ivan Sutherland 与 Sketchpad。 1963 年那篇论文,Dave Evans 在他报到当天就递给了他——其中的母本与实例、屏幕上的直接操作——正是他关于对象与交互式图形之思考有据可查的种子。4(直接影响)

Simula 与对象的主意。 Simula 语言给了 Kay 一个具体的概念:把状态与行为捆绑在一起的对象,他随后把它激进化为”一切皆对象,靠消息交谈”。4(直接影响)

Seymour Papert 与 Logo,经由 Piaget。 Papert 关于孩子编程的工作——及其背后 Piaget 与 Bruner 的发展心理学——给了 Kay 这样的信念:计算真正的受众是学习者,它真正的目的是一种思考的媒介,而非数据处理。Dynabook 就是 Logo 的抱负的便携形态。47(奠基性影响)

生物学。 Kay 在分子生物学上的训练提供了那个主导比喻:细胞作为一台完整、自我保护的计算机,有机体则是数以百万计的细胞相互发消息。对他而言,面向对象就是软件在努力成为生物学。2(奠基性影响)

他塑造了谁

每一门面向对象语言。 Smalltalk 的模型——对象、消息发送、动态分派——直接流入 Objective-C、Ruby 与 Java,它的词汇如今已是编程默认的家具。就连那些无视了他关于消息传递之告诫的语言,也继承了他造出的那个词。56

图形用户界面,并经由它影响了 Mac 与 Windows。 出自他在 PARC 团队的层叠窗口式 GUI,1979 年在 Alto 上展示给了 Jobs,后来成了 Lisa、Macintosh,再之后成了此后几乎每一台个人计算机的界面。8

笔记本电脑与平板电脑。 Dynabook 在 1972 年就描述了那台如今全世界都随身携带的便携个人计算机。你桌上的机器和包里的薄板,在轮廓上都是 Kay 当年勾勒的那个东西。7

贯穿始终的那条线

Barbara Liskov 让数据抽象成为一种编程原语——一个类型就是它所守住的契约,而一个子类型必须兑现它的超类型所做的每一个承诺。这正是 Kay 的消息传递信念以类型理论的形式表述出来:重要的是对象之间的契约,而非它们的内脏,调用方应当能够发出一条消息、信任那个应答,而完全无需去读它是如何产生的。Thompson 与 Ritchie 用”把一件事做好”、并通过干净管道组合的小程序构建了 Unix,而 Kay 则用做好一件事、并通过干净消息组合的小对象来构建系统——这是同一个赌注:一个大系统应当是许多相互独立的小事物,只在它们的接口处耦合。再看 Grace Hopper,她坚持计算机应当用人类自己的语言去迎接人类,把翻译挪进机器,好让人能用自己的术语去推理;Kay 则把这一点推到了极限——有了 Dynabook,计算机不只是说人类的语言,而是成为人类用以 在其中 思考的媒介。这条线随后向前延伸到 Steve Jobs,他在 1979 年走进 PARC,看到了 Kay 的界面,并把它带向了世界。(系列衔接)

我从中学到了什么

我反复记住的教训是:任何系统最难的部分,是选定那个框架,而框架本身比它内部的聪明更有价值。Kay 那句”80 个智商点”,是这整个系列里最有用的一句话,因为它告诉你该把力气花在哪:不是在一个糟糕模型里更卖力地死磕,而是去找那个让问题自行消解的模型。对软件而言,消息传递就是这一步。对个人计算而言,把计算机当作媒介就是这一步。这门纪律,就是在写下一行代码之前,不断地问 什么样的视角能让这件事变简单? 这与质量是唯一的变量是同一个标准——问题从来不是”我能不能逼着错误的设计更卖力地工作?”,而是”我有没有找到那个对的设计?”

在我如今所构建的世界里——智能体、工具循环、AI 系统——Kay 对面向对象的真正定义,是这个网站上最承重的主意,而几乎没人点出它的名字。一个智能体 就是 一个 Kay 式的对象:它持有私有状态,你读不到它的内部,你与它的全部交互就是给它发一条消息、再信任它来决定如何应答。一个多智能体系统恰恰就是 Kay 的生物学愿景——许多相互独立的计算机,每一个都保护着自己的上下文,靠消息传递成长为某种更大的东西,绝不靠伸进彼此的内存。这套东西之所以行得通(当它行得通时),其全部缘由就是晚绑定:发送方并不知道接收方会如何应答,而这份”不知道”正是特性所在,因为它正是让各部分得以独立变化的东西。把智能体构建好,就是在构建 Kay 的细胞——而那些失败,永远是同一个失败:一处渗漏的边界。这一信念——系统应当由相互发消息的小事物养大,而非由相互伸手进内部的部件拼装而成——正是从 1972 年那张 Dynabook 草图一路贯穿到 2026 年某个智能体框架的那条线,也正是为什么证据关口检查的是一个组件的 应答,而非它的内部。

常见问题

Alan Kay 的工程哲学是什么?

Kay 的核心信念是:一个大到无法装进脑子的系统,必须由相互独立的对象构建而成,这些对象保护各自的私有状态,只通过发送消息来通信——像一个生物有机体那样,由许多小细胞养大,绝不由相互伸手进内部的部件拼装而成。这底下还有一种面对问题的姿态:转换视角比纯粹的聪明更有价值,所以工作就是找到那个让难题变简单的框架。他把这一点应用到了编程(Smalltalk)、应用到了计算机本身(Dynabook,计算机作为思考的媒介),也应用到了整个行业(他的批判:真正的计算机革命尚未发生)。13710

Alan Kay 所说的”面向对象编程”和”消息传递”是什么意思?

Kay 造出了”面向对象”这个词,但他后来说自己很后悔,因为它让人们把焦点放在对象、类与继承上——“那是次要的主意”。他真正的定义有三部分:消息传递;每个对象状态的局部保留、保护与隐藏;以及一切事物的极度晚绑定。1 真正的大主意是消息传递:对象绝不伸进彼此的内部;发送方发出一条消息,由 接收方 在它抵达的那一刻决定它意味着什么。请注意,类和继承并不在清单上——一门语言可以两者兼具,却仍然错失要旨,只要它允许一个对象去操作另一个对象的私有状态。消息传递才是让各部分真正独立的东西,而这正是让一个大型系统得以成长、得以改变而不沦为一团乱麻的关键。16

Dynabook 是什么?

Dynabook 是 Kay 在他 1972 年的论文《一台献给所有年龄段孩子的个人计算机》中所描述的便携个人计算机,发表于 ACM 全国大会:一台笔记本大小、平板屏幕的机器,由个人拥有、随处使用,装着他的图书馆、音乐、画作和程序。7 当时并不存在这样的机器;他是在提早数十年描述笔记本电脑和平板电脑。但它真正的要点是观念性的——计算机作为人类思考的一种新 媒介,如同书写或印刷,一个人(尤其是孩子)能够在其中搭建并运行关于想法的动态模型,而不只是消费内容。Xerox Alto 就是作为”临时 Dynabook”造出来的,而我们今天随身携带的笔记本电脑和平板电脑,正是这一愿景在硬件中的实现。47

Alan Kay 为什么获得图灵奖?

ACM 把 2003 年的 A.M. 图灵奖授予 Kay,”以表彰他开创了当代面向对象编程语言根基处的诸多理念、领导了开发 Smalltalk 的团队,并对个人计算做出了根本性贡献”。12 这则授奖词同时捕捉了他工作的两个半边:那门塑造了软件构建方式的语言与消息传递模型,以及那个塑造了”个人计算机为何物”的 Dynabook 与 PARC 图形界面工作。他是 Smalltalk 背后的关键人物,是 Steve Jobs 1979 年在 PARC 看到、并带进 Macintosh 的那套层叠窗口 GUI 的关键人物,也是”个人化、便携的计算机作为思考媒介”这一构想本身的关键人物。48


来源


  1. Alan Kay, email to the Squeak developers’ mailing list, October 10, 1998, archived and widely quoted at picostitch, “Alan Kay On Messaging.” “I’m sorry that I long ago coined the term ‘objects’ for this topic because it gets many people to focus on the lesser idea. The big idea is ‘messaging’…” Kay’s three-part definition of OOP – “messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things” – appears in a later (2003) reply on the same theme, archived at Stefan Ram, “Dr. Alan Kay on the Meaning of ‘Object-Oriented Programming.’” Discussion: Hacker News. 

  2. Alan Kay, on the biological/cell metaphor for objects and scaling software like an organism; see his recollections in “The Early History of Smalltalk,” ACM SIGPLAN History of Programming Languages II (1993), and the “millions of cells, each a whole computer” framing summarized in his “Alan Kay” Wikipedia entry. 

  3. “Quote Origin: Point of View Is Worth 80 IQ Points,” Quote Investigator. Attributed to Kay; earliest documented delivery in his Creative Think seminar talk, July 20, 1982 (recorded by Andy Hertzfeld), with published appearances in 1984–1985. Variants: “Point of view is worth 80 IQ points,” “A change in perspective is worth 80 IQ points.” Also collected at Wikiquote. 

  4. “Alan Kay,” Wikipedia. Born May 17, 1940, Springfield, Massachusetts; PhD, University of Utah, 1969, advisor David C. Evans (dissertation FLEX); Ivan Sutherland’s Sketchpad and Simula as influences on his object thinking; attended Engelbart’s 1968 “Mother of All Demos”; joined Xerox PARC in 1970 leading the Learning Research Group; Smalltalk with Dan Ingalls and Adele Goldberg; the Dynabook; the overlapping-window GUI and the Alto as “the interim Dynabook”; coined “object-oriented”; founded Viewpoints Research Institute (2001). See also Britannica, “Alan Kay.” 

  5. “Smalltalk,” Wikipedia. Designed at Xerox PARC; one of the first fully object-oriented, dynamically typed languages; everything is an object, all computation by message passing; dynamic, late-bound, live image. Implementation led by Dan Ingalls; documentation and system work by Adele Goldberg. 

  6. Alan Kay, OOPSLA 1997 keynote remarks, “When I made up the term object-oriented, I did not have C++ in mind”; see “The Computer Revolution Hasn’t Happened Yet,” archived video and transcript, Internet Archive. 

  7. Alan C. Kay, “A Personal Computer for Children of All Ages,” originally published in the Proceedings of the ACM National Conference, Boston, August 1972 (republished by Viewpoints Research Institute). Describes the Dynabook – a portable, notebook-sized personal computer as a medium for learning – and draws on Bruner and Papert/Logo. Overview and the “interim Dynabook” lineage to the Alto: “Dynabook,” Wikipedia. 

  8. “History of the graphical user interface,” Wikipedia, and “Xerox Alto,” Wikipedia. The overlapping-window GUI developed in Kay’s Learning Research Group at PARC; Steve Jobs and Apple engineers were shown the Alto running Smalltalk-76 – bitmapped display, mouse, overlapping windows – in December 1979; the ideas flowed into the Apple Lisa and Macintosh. 

  9. “Quote Origin: We Cannot Predict the Future, But We Can Invent It,” Quote Investigator. Kay’s own account (1998 email) traces “The best way to predict the future is to invent it” to an early 1971 meeting of PARC researchers and Xerox planners – “In a fit of passion I uttered the quote!” Earliest published attribution: InfoWorld, April 1982. 

  10. Alan Kay, “The Computer Revolution Hasn’t Happened Yet,” OOPSLA 1997 keynote (Internet Archive). Argument that the industry adopted the artifacts of personal computing while missing the idea – “automating paper” rather than building a genuinely new medium. 

  11. Viewpoints Research Institute, STEPS Toward Expressive Programming Systems – the project to rebuild an entire personal-computing system (OS, apps, and all) in roughly 20,000 lines of code as a critique of software bloat. NSF final report archived at VPRI / Internet Archive (worrydream mirror). Context: Wikipedia, “Viewpoints Research Institute.” 

  12. “A.M. Turing Award Laureates – Alan Kay,” Wikipedia (2003 citation). “For pioneering many of the ideas at the root of contemporary object-oriented programming languages, leading the team that developed Smalltalk, and for fundamental contributions to personal computing.” ACM laureate page: amturing.acm.org/award_winners/kay_3972189.cfm. 

相关文章

工程哲学:Leslie Lamport,先思考再写代码

Leslie Lamport 让分布式系统成为一门科学:时间不是全局的,真正实在的是因果,先写明设计规约,再动手写代码。

1 分钟阅读

工程哲学:Grace Hopper,让计算机说人类的语言

Grace Hopper 打造了第一个编译器,让程序得以用人类语言书写;她用一段电线把延迟变得触手可及,并向陈腐的教条宣战。

3 分钟阅读

The Shader Gallery That Lied: Debugging 216 WebGL Presets

A user said the shader playground looked broken. Pixel-readback testing found 30 dead presets, 11 that never compiled, a…

11 分钟阅读