工程哲學:Alan Kay,真正的大想法是訊息傳遞

重點摘要
- 大想法是訊息傳遞,而非物件本身。 Kay後悔當年造出「物件」這個詞,因為它把人們的注意力引向類別與繼承——那其實是次要的想法。真正重要的,是各自獨立的事物互相傳送訊息,並由接收方來決定一則訊息的意義。
- 轉換觀點,值八十個智商點。 你無法在錯誤的框架裡靠聰明硬解一個難題;你要找的,是讓問題變簡單的那個框架。對軟體而言,訊息傳遞正是這樣的一步。
- Dynabook把運算重新定義為思考的媒介, 而非處理任務的工具——這台在1972年勾勒出的筆電與平板,目的是讓人能夠想出過去無法想出的念頭。
- 晚期繫結(late binding)才是換來獨立性的關鍵。 正因為傳送方並不知道接收方會如何回應,各個部分才能在不互相破壞的前提下改變——這也正是一個系統得以成長、超越單一心智所能掌握範圍的原因。
核心原則
「我很抱歉很久以前為這個主題造出了『物件』這個詞,因為它讓許多人把焦點放在次要的想法上。真正的大想法是『訊息傳遞』。」——Alan Kay1
他造出了這個術語,並主要憑藉它贏得了圖靈獎,然後又花了數十年告訴大家:他們把它讀錯了。「物件」這個詞讓工程師想到類別、繼承,以及自己資料模型裡的那些名詞——盒子裡的家具。Kay的重點是,家具才是次要的想法。真正重要的,是那個盒子,以及盒子之間的訊息:各自獨立的事物,持有自己私有的狀態,彼此之間只透過互相傳送訊息來互動,而由接收方、而非傳送方,來決定一則訊息的意義。1 這就是把晚期繫結提升為一種哲學。傳送方不會伸手進去操作機器;它只是發問,並信任對方知道該如何回答。
這之所以是大想法,是因為它正是你用來建構某種大到無法塞進腦袋的東西的方法。Kay反覆使用的比喻來自生物學:一個大型系統應該像身體那樣被「養成」,由數以百萬計的細胞組成,每個細胞都是一台完整的電腦,保護自己的狀態,並只透過訊息與鄰居交談。2 沒有任何一個細胞會伸進另一個細胞的化學作用裡。整個有機體之所以強韌,正因為各個部分彼此獨立,唯一的耦合就是它們所交換的訊息。依照Kay本意去做的物件導向程式設計,並不是一種組織資料的方式——而是一種用許多小事物來打造系統的方式,讓它們彼此協商,如此一來,沒有任何單一部分需要去理解整體。
藏在這一切底下、更深的一步,是面對問題、而非面對程式碼的一種姿態。轉換觀點,值八十個智商點,Kay喜歡這麼說。3 你無法在錯誤的框架裡靠更聰明來解一個難題;你要找的,是讓問題變得簡單的那個框架。訊息傳遞是這樣的一個框架,個人電腦則是另一個。「正確的視角勝過純粹的聰明」這份信念,與品味是一套可供檢視的技術系統,而非你信口宣稱的某種感覺背後的論點,出自同一份信念——你選擇用來看待一個問題的結構,本身就是工作的一部分。
背景脈絡
Alan Curtis Kay於1940年5月17日出生於麻州的Springfield。4 他很晚、而且是斜著進入運算領域的——他是個爵士吉他手,也是個嗜書如命的孩子,曾在空軍服役,在那裡一項性向測驗把他拉向了程式設計,之後他才在科羅拉多完成數學與分子生物學的學位。4 生物學至關重要。日後組織起他整套軟體理論的「細胞即電腦」比喻,正是源自於此,而非任何程式設計傳統。
1960年代中期,他來到由ARPA資助的猶他大學電腦科學課程,他的博士指導教授是Dave Evans,周遭的教職員當中包括Ivan Sutherland。4 大約在報到的第一天,Evans就把Sutherland 1963年的Sketchpad論文交給他讀。Sketchpad讓使用者能用光筆直接在螢幕上作畫,而且——關鍵在於——它具有主件(masters)與實例(instances):你只定義一個形狀一次,再蓋印出繼承自它的副本。Kay認為,這篇論文,連同他不久後接觸到的Simula語言,是他關於物件思考的種子。4 他也參加了Douglas Engelbart在1968年的「萬demo之母(Mother of All Demos)」——那場示範了滑鼠、超文字與互動式運算的現場演示,他後來稱之為一生中最了不起的經歷之一。4 他1969年的博士研究,即FLEX機器與語言,是圍繞這些理念打造一台個人化、互動式電腦的早期嘗試。4
1970年,他加入了剛成立的全錄帕羅奧圖研究中心(Xerox PARC),並被指派去主持學習研究小組(Learning Research Group)。4 1970年代的PARC,是少數能讓研究者在企業預算下追求一個長達二十年願景的地方。Kay心中正有這樣一個願景:不是一台更快的大型主機,不是一台更好的終端機,而是一台孩子可以拿來當作思考媒介的個人電腦。他在PARC打造的一切——Smalltalk、視窗化介面,乃至筆電這個概念本身——都是為了實現那一幅單一的圖像。
他的工作
Smalltalk與訊息傳遞:物件導向真正的意涵
在PARC,Kay與他的小組——核心成員包括負責奠基性實作的Dan Ingalls,以及打造了大半周邊系統與文件的Adele Goldberg——創造出了Smalltalk,這是最早一批完全物件導向的動態程式語言之一。45 在Smalltalk裡,一切都是物件,而物件唯一做的事就是互相傳送訊息。沒有任何運算子會伸進另一個物件的狀態裡;即使是算術,也是傳送給一個數字的一則訊息。這個系統採用動態型別,而且極度晚期繫結:一則訊息做什麼,是由接收方在它抵達的那一刻才解析出來,而不是由傳送方事先固定下來。5 正是這種延後解析,讓一個運行中的Smalltalk映像得以在運行時被編輯——語言與它的環境是同一個活生生的東西。
Kay後來把他對物件導向程式設計的真正定義,提煉成三項要求:訊息傳遞;在每個物件內部對狀態-程序進行本地保存、保護與隱藏;以及對一切事物的極度晚期繫結。1 請注意清單上沒有什麼:類別、繼承、型別。那些是實作上的便利。不可妥協的兩點是:狀態是私有的,以及一切都儘可能延到最後才決定。當他說自己造出了「物件導向」這個詞、而且「腦中並沒有C++」時,他指的正是這件事——一個語言可以有類別、有繼承,卻仍然完全錯失重點,只要它允許一個物件伸進另一個物件的五臟六腑。6
訊息傳遞之所以是那根承重的想法、而物件不是,原因在於:訊息傳遞才是讓獨立性成真的東西。如果傳送方知道接收方的內部構造,兩者就會被焊死在一起,你又回到了一個糾纏成團的大程式。正因為傳送方只是傳送一則訊息、由接收方決定如何回應,你才能在不去碰傳送方的前提下,替換、擴充或養大接收方。這正是讓身體能夠癒合傷口、或讓網路能夠繞過一個死掉節點重新路由的那同一種特性。Kay希望軟體能像生物那樣擴展,而生物擴展的方式,是受保護的細胞之間的訊息傳遞,絕不是靠共用內部構造。
Dynabook:把運算當作媒介

1972年,Kay寫下〈A Personal Computer for Children of All Ages〉,並在波士頓的ACM全國大會上發表,文中他描述了Dynabook:一台可攜帶、筆記本大小、配有平面螢幕的個人電腦,能裝下一個孩子的整座藏書、音樂、畫作與程式,讓個人能夠擁有它,並隨時隨地使用。7 他把它畫成一塊大約筆記本大小的薄板,並主張它在原則上能用當時的技術造出來,而且賣得便宜。7 當時並不存在這樣的機器。個人電腦並不存在。他在1972年描述的,就是筆電與平板。
但Dynabook從來就不真的是關於硬體。它關乎的是運算為了什麼而存在。Kay的框架——取自Jerome Bruner的學習理論,以及Seymour Papert以Logo所做的工作——認為電腦是一種新的媒介,如同書寫或印刷術,而一種媒介的意義,正是讓人類能夠想出過去無法想出的念頭。47 一本書你只能閱讀;一台Dynabook你可以在其中創作與模擬。一個孩子應該能夠建構一個關於某個想法的動態模型,並看著它運行。這正是為什麼它必須是個人的、可攜帶的、且被擁有的:一種思考的媒介必須隨時在手邊,就像一本筆記本那樣,否則它根本算不上是媒介。Kay打造的一切,都源自把電腦視為媒介、而非工具這件事。
PARC的圖形介面與「發明未來」

Dynabook需要一個孩子用得來的介面,於是Kay的小組打造了一個。那種重疊視窗式的圖形使用者介面——視窗像桌上的紙張一樣堆疊,用一隻滑鼠去指、把其中一個彈到最前面——是在他位於PARC的學習研究小組裡開發出來的,並運行在全錄Alto這台機器上,小組稱它為「過渡期的Dynabook」。48 你用過的每一台桌面電腦,都是那項工作的後裔。1979年12月,Steve Jobs與一群Apple工程師造訪PARC,被展示了運行Smalltalk的Alto:點陣顯示、滑鼠、重疊的視窗。8 那些理念進入了Lisa,接著進入Macintosh,並從那裡進入Windows與運算的主流。8 如今全世界都在使用的這個介面,當初是為了服務一個關於孩子在新媒介中創作的願景而打造的。
驅動那項工作的座右銘,是Kay最常被引用的一句話:「預測未來最好的方式,就是把它發明出來。」 他說這句話出自1971年初PARC的一場會議,與會的有研究人員和全錄的規劃人員——「在一陣激情之中,我說出了那句話」——當時規劃人員想要的是預測,而Kay的回答是:你不會去預測一個你打算親手打造的未來。9 PARC就是那句話付諸實行的成果:Kay的小組不去問電腦將會變成什麼,而是決定電腦應該變成什麼,然後花了十年去打造它。個人運算的未來,在PARC不是被預測出來的。它是在那裡,被刻意地發明出來的。
電腦革命還沒有發生
1997年,Kay發表了一場名為〈The Computer Revolution Hasn’t Happened Yet〉的OOPSLA主題演講,它正是那則凱旋故事所必要的對照。10 他的論點是:這個產業拿走了PARC願景的產物——視窗、滑鼠、個人化的機器——卻錯失了那個想法。他說,個人運算大致上變成了紙張的自動化:數位文件、數位郵件、數位檔案櫃,模擬著舊媒介,而不是成為一個真正全新的媒介。他所指的那場革命——電腦作為一種放大人類思想的媒介,讓一般人能像寫字那樣寫程式——並沒有到來。桌面隱喻贏了;Dynabook的想法則沒有。
產物與想法之間的落差,成了他人生晚期的批判。透過他在2001年創立的Viewpoints Research Institute,Kay猛烈地反擊現代軟體的臃腫:動輒數千萬行的程式碼,只為了做一些他主張只需其中極小一部分就能做到的事——只要這個系統是從乾淨的、訊息傳遞式的部件「養成」的,而不是從沒人完全搞得懂的程式庫堆積出來的。411 他的「STEPS」計畫嘗試把一整套個人運算系統——作業系統、應用程式,全部在內——重建在大約兩萬行程式碼之內,作為一份存在性證明:臃腫是一種選擇,而非必然。11 訊息傳遞的信念,一路貫穿到這份抱怨:一個你無法理解的系統,正是一個其各部分未能真正獨立的系統。臃腫,就是邊界滲漏時所發生的事。
他的方法
這套方法在五十年間始終一致——一個語言、一台機器、一個介面,以及一份批判。
找到讓問題變簡單的那個觀點。 Kay的第一步從不是正面攻擊一個問題,而是改變它所處的框架。用訊息傳遞取代程序;用媒介取代工具;用細胞取代程式碼。那句「八十個智商點」,正是這套方法被講成一句口號:槓桿在於視角,而非苦力。3
用會傳訊息的獨立事物來建構,而非用會呼叫彼此的程序。 建構的單位是一個物件,它保護自己的狀態,只對外暴露訊息。你養大一個大型系統的方式,就如同生物學養出一個有機體——靠組合許多小的、獨立的、傳訊息的部件——如此一來,沒有任何一塊會依賴另一塊的內部構造。12
儘可能晚地繫結。 在最後一個負責任的時刻才決定事情。晚期繫結讓系統在運行時仍保持足夠的柔軟、可供改變,也讓傳送方對接收方的內部構造一無所知。早期繫結換來速度,卻拋棄了那份讓系統得以成長的獨立性。1
把電腦當作人類思考的媒介。 Dynabook的標準不是「這個工具能為一項任務做什麼?」,而是「一個人如今能夠思考、製作與模擬出哪些過去做不到的東西?」這個提問把整個事業的框架,從自動化重新導向放大。7
發明未來,而不是預測未來。 當被要求預測時,改為去決定。PARC的紀律,是挑出你想要的那個世界並把它打造出來,信念是:一個被追求了十年的願景,勝過任何預測。9
影響鏈
是誰形塑了他
Ivan Sutherland與Sketchpad。 Dave Evans在Kay報到時交給他的那篇1963年論文——帶著它的主件與實例、它在螢幕上的直接操作——是他關於物件與互動式圖形思考的、有文獻記載的種子。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那句「八十個智商點」,是整個系列裡最有用的一句話,因為它告訴你該把力氣花在哪裡:不是在一個糟糕的模型裡更使勁地磨,而是去找出那個能讓問題溶解掉的模型。對軟體而言,訊息傳遞就是這一步。把電腦當作媒介,則是個人運算的這一步。所需的紀律,是在寫下任何一行之前,不斷追問什麼樣的觀點,能讓這件事變簡單? 這與品質是唯一的變數是同一套標準——問題從來不是「我能不能讓一個錯的設計更賣力地運作?」,而是「我有沒有找到對的那一個?」
在我如今所打造的這個世界裡——代理(agent)、工具迴圈、AI系統——Kay對物件導向的真正定義,是這整個網站上最承重的一個想法,而幾乎沒有人把它說出來。一個代理就是一個Kay式的物件:它持有私有的狀態,你無法讀取它的內部構造,你只能透過向它傳送一則訊息、並信任它來決定如何回應,來與它互動。一個多代理系統,恰恰就是Kay那個生物學式的願景——許多獨立的電腦,每一個都保護著自己的脈絡(context),靠傳訊息成長為更大的東西,而絕不是靠伸進彼此的記憶。這之所以行得通——在它行得通的時候——整個原因就在於晚期繫結:傳送方並不知道接收方會如何回應,而那份無知正是一項特性,因為它正是讓各部分能夠各自獨立改變的東西。把代理做好,就是在打造Kay的細胞——而那些失敗,永遠是同一個失敗:一道滲漏了的邊界。那份信念——系統應當從會傳訊息的小東西「養成」,而非從會伸進彼此內部的部件「組裝」起來——正是從1972年那張Dynabook草圖,一路貫穿到一個2026年的代理框架的主線,也正是為什麼證據門檻檢查的是一個元件的回應,而不是它的內裡。
常見問題
Alan Kay的工程哲學是什麼?
Kay的核心信念是:一個大到無法塞進腦袋的系統,必須由各自獨立的物件來建構,這些物件保護自己私有的狀態,並只透過傳送訊息來溝通——像一個生物有機體那樣,從許多小細胞「養成」,而絕不是從會伸進彼此內部的部件組裝起來。在這之下,是一種面對問題的姿態:轉換觀點,比純粹的聰明更值錢,所以工作就是去找出那個能讓難題變簡單的框架。他把這套想法應用在程式設計(Smalltalk)、在電腦本身(Dynabook,電腦作為思考的媒介),以及在這個產業上(他批判道,真正的電腦革命還沒有發生)。13710
Alan Kay所說的「物件導向程式設計」與「訊息傳遞」是什麼意思?
Kay造出了「物件導向」這個術語,但他後來說他後悔了,因為它讓人們把焦點放在物件、類別與繼承上——「那個次要的想法」。他真正的定義有三個部分:訊息傳遞;對每個物件狀態的本地保存、保護與隱藏;以及對一切事物的極度晚期繫結。1 大想法是訊息傳遞:物件絕不伸進彼此的內部;傳送方傳送一則訊息,而由接收方在它抵達的那一刻決定它的意義。請注意,類別與繼承並不在清單上——一個語言可以兩者兼具,卻仍然錯失重點,只要它允許一個物件去操作另一個物件的私有狀態。訊息傳遞,正是讓各部分真正獨立的東西,而那正是讓一個大型系統得以成長、改變而不淪為一團亂麻的關鍵。16
Dynabook是什麼?
Dynabook是Kay在他1972年的論文〈A Personal Computer for Children of All Ages〉中所描述的可攜式個人電腦,該文在ACM全國大會上發表:一台筆記本大小、配有平面螢幕的機器,由個人擁有並隨處使用,裝著他們的藏書、音樂、畫作與程式。7 當時並不存在這樣的機器;他是在數十年前就描述了筆電與平板。但它真正的重點是概念性的——電腦作為一種人類思考的新媒介,如同書寫或印刷,在其中一個人(尤其是一個孩子)能夠建構並運行關於想法的動態模型,而不只是消費內容。全錄Alto正是作為「過渡期的Dynabook」而打造的,而我們今天隨身攜帶的筆電與平板,正是這個願景在硬體上的實現。47
Alan Kay為什麼贏得圖靈獎?
ACM將2003年的A.M.圖靈獎頒給Kay,「以表彰他開創了當代物件導向程式語言根基處的諸多想法、領導開發Smalltalk的團隊,以及對個人運算的根本性貢獻。」12 這段讚詞抓住了他工作的兩半:那個形塑了軟體如何被建構的語言與訊息傳遞模型,以及那個形塑了個人電腦為何物的Dynabook與PARC圖形介面工作。他是Smalltalk背後的關鍵人物,也是那個重疊視窗式GUI的關鍵人物——Steve Jobs於1979年在PARC看見它,並把它帶進了Macintosh——以及把個人化、可攜式電腦視為一種思考媒介這整個概念的關鍵人物。48
參考來源
-
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. ↩↩↩↩↩↩↩↩
-
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. ↩↩↩
-
“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. ↩↩↩
-
“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.” ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
“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. ↩↩↩
-
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. ↩↩↩
-
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. ↩↩↩↩↩↩↩↩↩
-
“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. ↩↩↩↩↩
-
“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. ↩↩
-
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. ↩↩
-
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.” ↩↩
-
“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. ↩