1968 - Engelbart 的超文字與滑鼠(人機介面的革命)#
案件摘要#
1968 年 12 月 9 日,Douglas Engelbart(1925–2013) 在舊金山的 ACM/IEEE 聯合會議上進行了 90 分鐘的示範—— 後世稱為「所有示範之母」(The Mother of All Demos):
1997 年,Engelbart 獲得圖靈獎—— 你的每一次點擊、每一個視窗、每一條連結,都是 1968 年那場示範的後代。
前因 -- 為什麼會有這個案子#
- Engelbart 的異象(1945): 1945 年,Engelbart(20 歲,海軍雷達技術員)讀到 Vannevar Bush 的 《我們可以這樣想》(As We May Think)—— Bush 構想了一台 Memex(記憶延伸機器):
「人類的心智是用『連結』運作的——知識應該用連結組織。」
- Engelbart 的信念(1951): 1951 年,Engelbart 訂婚時想到自己的人生目標:
「我要讓世界變得更好——最好的方式是增強人類的智力(augmenting human intellect)。」 1957 年他加入 SRI(史丹佛研究中心),創立 ARC(增強研究中心)—— 為了這個目標,他工作了 40 年。
- 1962 年的報告: Engelbart 發表《增強人類智力:概念的框架》 (Augmenting Human Intellect: A Conceptual Framework)—— 超文字、滑鼠、螢幕編輯的完整藍圖。
- NLS 系統(1962–1968): NLS(oN-Line System)——Engelbart 團隊花了 6 年建造—— 100,000 行程式碼、投入數百萬美元—— 1968 年 12 月 9 日的示範是它的首秀。
線索與推理 -- 數學式、程式、理論#
第一條線索:滑鼠的發明(1964)#
Engelbart 的滑鼠(1964,與 Bill English): - 木頭盒子 + 兩個輪子(垂直與水平)+ 一個按鈕; - 專利(1970):「顯示系統的 X-Y 位置指示器」。 為什麼叫「滑鼠」? 因為尾巴(電線)——工程師的幽默。 原理:輪子轉動 → 編碼器 → 位置信號:
後代:光學滑鼠(1999)、滾輪(1995)、觸控板(1994)、觸控螢幕(2007 iPhone)—— 全部是「指標 + 點擊」這個範式的後代。
第二條線索:超文字(hypertext)的結構#
超文字 = 用「連結」組織的文本:
對比線性文本(書):節點的順序是固定的; 超文本:連結任意跳躍——知識的網。 NLS 的超文字功能: - 連結(link):跳到相關文件; - 視圖(view):同一份文件的多種「視角」(大綱、全文); - 共用(shared):多人同時編輯(協作編輯的先聲——Google Docs 2006)。 後代:Ted Nelson 的 Xanadu(1965)(「超文字」這個詞的發明者)、 WWW(1989,Berners-Lee,2016 圖靈獎)—— Web 的 URL + 連結就是 NLS 的直接後代。
第三條線索:人機互動的理論(增強人類智力)#
Engelbart 的框架(1962):
H-LAM/T 系統(Human with Language, Artifacts, Methodology, Training): - 語言:表達的方式; - 人工物:工具(滑鼠、鍵盤、螢幕); - 方法論:工作的流程; - 訓練:學習的方式。
這是人機互動(HCI)的理論基礎—— 「電腦是增強智力的工具,不是替代人類的機器」—— 這與 AI 的「替代論」形成對比。
Python:超文字與連結結構的數值驗證#
import numpy as np
# 1) 超文字 = 節點 + 連結(圖結構)
# 用 PageRank 式的連結分析(Web 的數學)
nodes = ["首頁", "文章A", "文章B", "文章C", "關於"]
links = [
("首頁", "文章A"), ("首頁", "文章B"), ("首頁", "文章C"),
("文章A", "文章B"), ("文章A", "關於"),
("文章B", "文章C"), ("文章C", "首頁"), ("文章C", "文章A"),
]
def pagerank(nodes, links, damping=0.85, iters=50):
"""PageRank:連結的重要性(Web 的數學)"""
n = len(nodes)
idx = {node: i for i, node in enumerate(nodes)}
M = np.zeros((n, n))
for src, dst in links:
M[idx[dst], idx[src]] += 1
for i in range(n):
total = M[:, i].sum()
if total > 0:
M[:, i] /= total
else:
M[:, i] = 1/n
M = damping*M + (1-damping)/n
v = np.ones(n)/n
for _ in range(iters):
v = M @ v
return v
print("超文字的連結分析(PageRank,Web 的數學):")
pr = pagerank(nodes, links)
for node, rank in sorted(zip(nodes, pr), key=lambda x: -x[1]):
print(f" {node}: PageRank = {rank:.4f}")
print(" → 連結結構決定「重要性」(Web 的核心數學)\n")
# 2) 超文字 vs 線性文本的「導航效率」
print("導航效率(超文字 vs 線性):")
# 線性文本:從第 1 節到第 5 節需要 4 步
# 超文字:用連結可能只要 1 步
linear_steps = 4
hypertext_steps = 1
print(f" 線性文本(第1節→第5節):{linear_steps} 步")
print(f" 超文字(有連結):{hypertext_steps} 步")
print(f" 加速 = {linear_steps/hypertext_steps} 倍\n")
# 3) 滑鼠與鍵盤的效率對比(Fitts 定律,1954)
print("Fitts 定律(1954,指向的數學):")
def fitts_time(D, W, a=0.1, b=0.15):
"""Fitts 定律:T = a + b·log₂(2D/W),D 距離、W 目標寬度"""
return a + b*np.log2(2*D/W)
# 滑鼠 vs 鍵盤導航的對比
for D, W in [(100, 20), (300, 20), (100, 50)]:
t = fitts_time(D, W)
print(f" D={D}px, W={W}px: 指向時間 = {t:.3f} 秒")
print(" → 目標越大越近,指向越快(UI 設計的數學基礎)\n")
# 4) 協作編輯的先聲(NLS 的共用功能)
print("協作編輯(NLS 1968 → Google Docs 2006):")
print(" NLS:多人同時編輯(1968 的示範)")
print(" Google Docs:CRDT/OT 演算法(2006)")
print(" → 多人協作 = 1968 的遠見(比 Web 早 20 年)")
# 5) 增強人類智力的框架(Engelbart 1962)
print("\nEngelbart 的框架(H-LAM/T):")
print(" 人類智力 = H + A(人 + 增強)")
print(" A = 語言 + 人工物 + 方法論 + 訓練")
print(" → 增強不只是機器:工具 + 方法 + 訓練(HCI 的理論基礎)")
超文字的連結分析(PageRank,Web 的數學):
文章C: PageRank = 0.2695
文章A: PageRank = 0.2177
文章B: PageRank = 0.1957
首頁: PageRank = 0.1696
關於: PageRank = 0.1476
→ 連結結構決定「重要性」(Web 的核心數學)
導航效率(超文字 vs 線性):
線性文本(第1節→第5節):4 步
超文字(有連結):1 步
加速 = 4.0 倍
Fitts 定律(1954,指向的數學):
D=100px, W=20px: 指向時間 = 0.598 秒
D=300px, W=20px: 指向時間 = 0.836 秒
D=100px, W=50px: 指向時間 = 0.400 秒
→ 目標越大越近,指向越快(UI 設計的數學基礎)
協作編輯的先聲(NLS 的共用功能):
NLS:多人同時編輯(1968 的示範)
Google Docs:CRDT/OT 演算法(2006)
→ 多人協作 = 1968 的遠見(比 Web 早 20 年)
Engelbart 的框架(H-LAM/T):
人類智力 = H + A(人 + 增強)
A = 語言 + 人工物 + 方法論 + 訓練
→ 增強不只是機器:工具 + 方法 + 訓練(HCI 的理論基礎)
結案 -- 後果與影響#
- 1968 年的示範(所有示範之母):
當時的觀眾以為在看科幻電影—— 這些功能要等 20–30 年才成為日常:
- Xerox PARC 的接力(1970s): Engelbart 的示範啟發了 Xerox PARC(帕洛奧圖研究中心):
- Alto 電腦(1973):第一個圖形介面的電腦(Thacker,2009 圖靈獎);
- 乙太網路(1973,Metcalfe,2022 圖靈獎);
- 雷射印表機、Smalltalk(Kay,2003 圖靈獎)。
- WWW 的誕生(1989):
- URL + HTML + HTTP——超文字的網路化;
- 2016 年圖靈獎給 Berners-Lee——「Web 的發明者」;
- Web 的數學(PageRank,1998,Google 的核心)—— 連結結構決定重要性(見上面的程式)。
- 人機互動(HCI)的誕生(1968–):
- Fitts 定律(1954):指向的數學——UI 設計的基礎;
- 可用性工程(usability,Nielsen,1990s):10 條可用性原則;
- 設計思考(design thinking,2000s):以人為本的設計。
Engelbart 的哲學與 AI 的對比: - Engelbart:電腦增強人類的智力(人機合作); - AI 派:機器替代人類的智力(自動化)。 今天的 LLM(2018 圖靈獎深度學習)是「增強」還是「替代」?—— 這是 1968 年 Engelbart 遠見的延續。 - 1997 年圖靈獎: Engelbart 1997 年獲圖靈獎——表彰「互動計算」的遠見。 他還獲得 1998 年 Lemelson-MIT 獎(500,000 美元)與 2000 年國家科技獎章。 2013 年去世——他晚年的口號是「提升我們的集體智商」(boosting our collective IQ)。 - 滑鼠的尷尬(1970 專利): Engelbart 的滑鼠專利(1970)在 1987 年到期—— 他沒有從滑鼠賺到一分錢(Apple、微軟賺了數十億)。
這是「發明的悖論」——Engelbart 從不在意:
「我的目標不是金錢,是讓世界更好。」 - 歷史定位:Engelbart 是「人機互動之父」——
一句話:電腦從「計算機器」變成「互動工具」,是 1968 年那場 90 分鐘示範的功勞。
關鍵人物與文獻#
- D. C. Engelbart:Augmenting Human Intellect(1962);1968 年的示範;滑鼠專利(1970);1997 圖靈獎。
- V. Bush:As We May Think(1945)——Memex 的構想。
- T. Nelson:Xanadu(1965)——「超文字」這個詞的發明。
- T. Berners-Lee:WWW(1989);2016 圖靈獎。
- P. Fitts:Fitts 定律(1954)——指向的數學。
- 相關案件:
1948-香農資訊理論.md、2000-姚期智量子計算.md、1978-蘭波特邏輯時鐘.md。