brianchitester.com文章博學者檔案遊戲RSS

Xanadu 計畫

1988 年 4 月 6 日,Autodesk 宣布收購一家名叫 Xanadu 的小軟體公司 80% 的股份。Autodesk 是位在加州 Sausalito 的公司,做的是繪圖軟體 AutoCAD。創辦人 John Walker 說,產品會在 18 個月內推出。他還給了一個更長遠的預測,記者 Gary Wolf 後來在《連線》(Wired)雜誌上把這句話翻出來回敬他:「到 1989 年,它會是一個產品。到 1995 年,它會開始改變世界。」

他對 1995 年的判斷是對的。那一年世界確實在改變,因為數百萬人第一次上網,在全球資訊網(World Wide Web)上點著連結。Xanadu 還沒推出。那年 6 月,Wolf 的文章稱它是「電腦產業史上拖得最久的霧件故事」,霧件指的是宣布了卻始終沒有交貨的軟體。這個計畫在 35 年前就開始了。

構想

1960 年,哈佛社會學研究生 Ted Nelson 修了一門電腦課,帶著一個關於寫作的想法離開。紙張把文字逼成一條線,一頁接著一頁。思考不是這樣運作的。Nelson 想要一套系統,讓寫作的人能保留一份文件的每一個版本、把兩份文本並排擺著,並且把任何一段連到其他任何一段。1965 年,他在美國計算機協會(Association for Computing Machinery,電腦科學家最主要的專業學會)發表的一篇論文裡,替這種文字取了名字:超文本(hypertext)。1967 年,他用 Samuel Taylor Coleridge 的詩〈忽必烈汗〉(“Kubla Khan”)裡那座逸樂宮殿的名字,替整個系統命名。計畫自己的歷史頁面 把 Xanadu 描述為「一個屬於文學記憶與自由的魔幻之地,在那裡,什麼都不會被遺忘」。

Nelson 提出的,是一個有點像 Web 的東西,只是設計它的人認真想過它會在哪裡出錯。接下來幾十年,這個設計逐漸定型成一份 17 條規則 的清單。其中幾條就撐起了整個構想。

連結是雙向的。如果一份文件連到另一份,第二份文件會知道,讀任何一份的人都可以沿著連結往任一個方向走。沒有東西會變成孤兒,你也永遠看得到誰在引用你。

引用是透過參照,而不是複製。Nelson 把這叫做 transclusion(嵌入):你不是把一段文字貼進自己的文件,而是放進一扇能即時看到原文的窗。讀者會在原處看到被引用的段落,可以一路點回出處,也看得到它在原文裡的上下文。因為沒有東西被複製,就沒有東西會過時,或弄丟出處。

每份文件都有一個永久位址,什麼都不會被刪除。新版本會和舊版本並存,所以 1990 年建立的連結,到了 2020 年仍然會通到某個地方。

而且作者會拿到錢。每當讀者調出某人作品的一部分,包括一段被嵌入的引文,就有一筆小小的版稅付給寫的人。發表一份文件,就等於自動授權所有人連結和引用它。版權和引用在紙上一直彼此衝突,在這裡由一具計費器來擺平。

合起來看,這是一座收藏所有曾被寫下的東西的圖書館,每一段引文都通回出處,每一個作者都拿得到錢。Nelson 此後一輩子都在主張,這就是電腦存在的目的。1974 年,他自費出版了 Computer Lib/Dream Machines,一本開本特大的書,有兩個封面,兩半各一個,副標題是「You can and must understand computers NOW」(你可以、也必須現在就搞懂電腦)。

人物

Ted Nelson 是女演員 Celeste Holm 和電影導演 Ralph Nelson 的兒子,去哈佛之前已經拿到 Swarthmore 學院的哲學學位 。他不是程式設計師,後來也沒有成為程式設計師。Wolf 筆下的他,幾乎什麼都用錄音帶和錄影帶記下來,什麼都不丟,因為怕忘記。他有注意力不足症,形容自己的思考方式是「蜂鳥心智」(hummingbird mind)。他告訴 Wolf,Xanadu 是「我想做的任何事的第一步」。

Roger Gregory 是留下來的那個人。他在密西根州安娜堡一家二手電腦店修設備時,接觸到 Nelson 的作品。1979 年夏天,他在賓州 Swarthmore 的一棟房子裡接待了核心設計團隊;1983 年,他創辦了 Xanadu Operating Company,要把設計變成產品。硬體是他自己掏錢買的:根據 Wolf 的說法,1982 年他花 26,000 美元買了一台 Sun 工作站,又花 10,000 美元買了一台 80 MB 的磁碟機。接下來十年的大部分時間,Gregory 都相信這套系統快完成了。「我手上的東西,再六個月就能推出。」他對 Wolf 說。

Mark S. Miller 是那年夏天在 Swarthmore 的年輕程式設計師之一。他當時是耶魯的大學部學生,後來在 Autodesk 時期成為計畫的首席架構師。Miller 的野心比 Gregory 大:他想把 Xanadu 好好地建起來,打在更乾淨的基礎上,就算那意味著從頭來過。這個分歧,後來決定了計畫最後一次真正有機會推出的結果。

實際建成的東西

頭二十年,Xanadu 大多還停留在紙上:Nelson 的書、設計文件,以及一組儲存文字的資料結構,讓每一個版本、每一條連結都能被快速取回。1979 年 Swarthmore 的那個夏天,把這些想法變成了一套架構。根據計畫的歷史 ,團隊成員有 Nelson、Gregory、Miller、Stuart Greene、Eric Hill 和 Roland King。

接下來十年做出來的,是一台能運作的伺服器,用 C 語言寫成,到 1988 年大致完成。它能儲存文件、版本和雙向連結,而且跑得起來。多年後,它以 Udanax Green 的名字開源釋出。

接著 Autodesk 來了。Nelson 在 1983 年的一場駭客聚會上認識了 Walker。Walker 的公司營收從 1983 年的 15,000 美元,成長到 1987 年的超過 5,400 萬美元,他有錢,也有耐心。根據 1988 年的協議,Xanadu 搬進帕羅奧圖的辦公室,離 Nelson 有一個多小時車程;Nelson 在 Sausalito 的 Autodesk 總部辦公。這時由 Miller 帶領的程式設計師們認定,Gregory 的 C 程式碼不足以作為他們想建的東西的基礎。他們把它擱到一邊,改用 Smalltalk 從頭開始,這種程式語言比較適合他們心目中那種以物件為基礎的設計。

這次重寫,後來以 Udanax Gold 的名字釋出,從來沒有完成。團隊為此分裂成幾派,Autodesk 訂的一個期限也過了。Autodesk 派來把產品推出去的經理 Marc Stiegler 後來告訴 Wolf,Xanadu「一次又一次打敗我」。

辦公室倒是做出了一個能用的東西。1989 年 4 月,Xanadu 的顧問 Robin Hanson 在主交誼廳的牆上設了一個下注市場 :一套紙本機制,讓參與的 18 個人針對一個問題交易,每個人的押注都貼在大家看得到的地方。第一個問題是冷核融合。1990 年 5 月,那個價格跌到 7% 時,Stiegler 提議換一個問題:「Xanadu 會在中國的鄧總理去世前交出產品。」開盤價大約是 70%。鄧小平在 1997 年 2 月去世。

怎麼死的

Autodesk 的耐心取決於 Autodesk 的股價。1991 年,股價在 60 美元以上。到了 1992 年 2 月中,在銷售疲軟和管理層內鬥之後,跌到 23.50 美元。4 月,Autodesk 從昇陽電腦(Sun Microsystems)找來 Carol Bartz 擔任執行長。根據 Walker 自己留下的公司紀錄 ,1992 年 8 月 20 日,Autodesk 交還了它在 Xanadu 和另一個實驗性事業的股份,並停止資助兩者。「它們不符合 Autodesk 的核心業務。」Bartz 說。

所有權回到了程式設計師和計畫的長期支持者手上,Nelson 和 Gregory 加起來大約持有一半。他們開始找客戶。影印連鎖店 Kinko’s 有興趣,後來又沒了。新的董事會為了誰來經營公司吵成一團。

最後一個客戶是 Memex,一家新創公司,取得這項技術的授權,要替保險公司建一套紀錄管理系統,跟 Xanadu 原本的設計目的毫無關係。Miller 和另外五名程式設計師去了那裡工作。這家公司很快就出現財務問題;照 Wolf 的說法,1994 年 11 月它停付授權費時,程式設計師們把電腦搬走了。公司創辦人威脅要告,機器又搬了回去,他還雇了沒去那裡工作的 Gregory 來把程式碼寫完:一共 30 萬行。與此同時,Nelson 去了日本,在札幌的北海道大學擔任客座教授。他不再把 Xanadu 當成產品推銷,而是單獨推廣它的版稅機制,並且根據計畫自己的說法 ,在研究針對 Web 的構想。

全球資訊網來自完全不同的地方。1989 年 3 月,日內瓦附近的歐洲粒子物理實驗室 CERN 有一位軟體工程師 Tim Berners-Lee,寫了一份提案 ,讓實驗室的科學家能共享文件。它用的是單向連結:一個頁面可以指向另一個頁面,而目標頁面永遠不會知道。如果目標搬走或消失,連結就直接斷掉。沒有版稅、沒有版本,也沒有永久位址。到 1990 年底,這套軟體已經在 CERN 跑起來;1993 年 4 月,CERN 把它釋出到公有領域,讓任何人都能使用。Autodesk 放掉 Xanadu 的時候,Web 只在幾十台伺服器上運作,大多在物理實驗室裡。到 Wolf 的文章刊出時,它已經擴散到各個角落。

Nelson 很不能接受這篇文章。他在自己的網站上叫 Wolf「Gory Jackal」 (血腥豺狼,拿 Gary Wolf 的名字開玩笑),寫了反駁文,還威脅要告。Wolf 在文章結尾寫到 Gregory 坐在一輛停著的車裡,雙手抱頭。被問到為什麼在這個計畫待了這麼久,他說:「徹底瘋了。」

驗屍

Xanadu 是被 Web 打敗的,只是輸法跟一般公司不一樣。Web 從來沒有從它手上搶走任何客戶,因為 Xanadu 從來沒有一個可以被搶走客戶的產品。Web 搶走的是那份工作。等到一個能運作的 Xanadu 有機會到達大眾手上時,Nelson 描述的那個彼此連結的文件世界已經存在了,建立在比較粗糙的規則上,再也沒有空間容納第二個。Xanadu 輸掉了一場它其實從沒參加的比賽。

最明顯的反對意見是,它根本不需要對手就會失敗。在 Web 出現之前,Xanadu 已經 29 年沒有推出任何東西。Autodesk 在 1992 年放棄它,是因為 Autodesk 自己的股價,那時 Web 還只是物理實驗室裡的幾十台伺服器。照這個讀法,Web 只是旁觀者,Xanadu 死於完美主義。

第二種反對意見走得更遠:Xanadu 根本不可能在 Web 的規模上運作,所以也談不上輸掉比賽。它的那些保證,永遠不斷的連結、每份文件的每個版本都有永久位址、每一次引用都計算版稅,全都假設有人保存著整個網路完整且一致的紀錄。在一個沒有人擁有的網路上,這幾乎不可能。Berners-Lee 決定讓連結可以斷,不是偷工減料。正是因為這樣,任何人都能不經許可就架一台 Web 伺服器、連到任何東西,再不通知任何人就把伺服器關掉。從這個角度看,Xanadu 是一套封閉系統的設計,打扮成開放系統的設計。Walker 自己就說過,團隊已經「以超曲速衝進了技術狂妄地帶」 。

第二種反對意見對完整的設計是對的,對這個構想是錯的。雙向連結和嵌入,在任何由單一組織控制的系統裡都運作得很好。每個維基百科頁面都有一個「連入頁面 」(What links here)按鈕,維基百科的軟體也用 transclusion  把共用的文字嵌入成千上萬個頁面,用的正是 Nelson 取的那個詞。Green 伺服器在 1988 年就在一台機器上做到了這些。雙向連結甚至從外部回到了 Web 本身。1996 年,兩個史丹佛研究生 Larry Page 和 Sergey Brin 做了一個搜尋引擎,爬遍整個 Web,替每個頁面算出有哪些其他頁面指向它:正是 Web 當初丟掉的那份資訊。他們把它叫做 BackRub ,取自那些反向連結(back links),後來改名叫 Google。建不出來的,是一次全部做到、給所有人用、還附帶付費的版本。

第一種反對意見比較接近事實,但它解釋的是 Xanadu 怎麼輸的,不是什麼終結了它。光是慢,並沒有殺死這個計畫。三十年來,這個構想一直找得到新的金主,先是 Gregory,然後是 Autodesk,再來是 Memex,因為市面上沒有別的東西做得到它承諾的事。Web 改變了這一點。有了 Web 之後,Xanadu 的賣點不能再是「彼此連結的文件」,而必須是「把彼此連結的文件做對」,這要難賣得多,Nelson 自己的工作也從打造產品,轉向批評那個贏了的產品。

而 Web 能贏,靠的正是 Xanadu 一再做出的同一個選擇。Autodesk 的錢一到,團隊就丟掉能跑的程式碼,換一種新語言從頭來過,Autodesk 願意出錢的那四年,全花在一個從沒完成的重寫上。那幾年 Xanadu 不缺時間,也不缺錢。它缺的是一個願意讓人拿去用的版本。Web 靠單向連結贏了,而那正是 Nelson 特意從設計裡拿掉的部分。

留下來的

那些詞。 Nelson 在 1965 年創造了 hypertext(超文本)這個詞,它就在每個網頁傳輸時所用的協定名稱裡:HTTP,超文本傳輸協定(Hypertext Transfer Protocol)。Transclusion 至今仍被程式設計師用來指以參照方式把一段內容放進另一段內容裡,維基百科的編輯每天都在用。

程式碼。 根據計畫的歷史 ,1999 年公司董事會投票決定,以 Udanax 的名字把兩套伺服器都開源釋出。Nelson 繼續自己做規模比較小的版本。2014 年,他把 OpenXanadu 放上網,這是一個在瀏覽器上的展示,把文件並排呈現,引文和出處之間的連線清楚可見。Nelson 的團隊稱它是「一個可運作的交付成果」 。

Mark Miller 的第二段職業生涯。 接下來幾十年,Miller 都在研究 Xanadu 提出的那個安全問題:怎麼讓程式和人在網路上合作,又不必完全信任彼此。他設計了 E 程式語言,以 JavaScript 標準制定委員會成員的身分,協助把安全功能帶進 JavaScript,現在是智慧合約公司 Agoric  的首席科學家。

預測市場。 Hanson 貼在交誼廳牆上的那塊板子,是他所知最早的這類市場。他後來成了喬治梅森大學的經濟學家,也是這類市場在學界最知名的倡議者;這類市場如今交易的標的包括選舉和利率。他的第一個市場,賭的是 Xanadu 會不會推出。

今天的幽靈

Web 選擇了允許斷掉的單向連結,而它們確實會斷。2024 年,皮尤研究中心(Pew Research Center)抽樣檢查了 2013 年存在過的網頁,發現其中 38% 已經不見了 。它也發現,23% 的新聞網頁和 21% 的政府網頁上有失效連結。2014 年,法律學者 Jonathan Zittrain、Kendra Albert 和 Lawrence Lessig 的一項研究發現,美國最高法院判決意見書裡引用的網路連結,有一半已經不再指向大法官當初引用的資料 。他們的解法 Perma.cc,是一個在網頁被引用的那一刻存下一份永久副本的服務。這就是 Xanadu 的其中一條規則,由圖書館一次一筆引用地重建起來。

Berners-Lee 心裡有數。1998 年,他寫了一個短短的頁面,叫做「Cool URIs don’t change 」(酷的 URI 不會變),請經營網站的人別再改動頁面的位址(用 Web 的行話說,就是 URI)。「URI 不會變,是人去改了它們。」他寫道。Web 對失效連結的回答,是一份風格指南。

Nelson 的版稅計費器也回來了,只是形式比較粗糙。1997 年 HTTP 改版時,錯誤代碼清單裡有一個 402,「Payment Required」(需要付款),保留供未來使用 :替當時還不存在的數位現金預留的位置。將近三十年來,它大多沒被用過。2025 年 7 月,Cloudflare 推出了 Pay Per Crawl ;這家公司夾在全球很大一部分網站和它們的訪客之間。出版者替每個頁面定一個價格。爬蟲,也就是自動下載網頁的程式,如果沒付錢就來,會收到一個 402 和價格;付了錢,就拿到頁面,再由 Cloudflare 把錢轉過去。這些爬蟲大多屬於收集文字來訓練 AI 模型的公司。這是一筆在取用那一刻收取、付給被取用內容作者的費用,只是為機器而建,不是為讀者。

Nelson 則始終不接受 Web 的條件。他在 1999 年貼出的一份俏皮話清單 裡有一句總結,指的是 HTML,也就是寫網頁用的程式碼:「HTML 正是我們當初想要防止的東西。」

延伸閱讀

屬於此路不通系列,記錄那些野心勃勃的失敗。

這個部落格上的文章,都是我在 AI 工具的協助下寫的。
2026 © Brian Chitester.