《黑客列傳》講述引人入勝的故事,從早期的電腦研究實驗室開始,引領至最初的家用電腦。
這本Steven Levy經典著作的25週年版,追溯電腦革命起源的黑客功勳──從一九五零年代晚期到八零年代早期,這些聰明而特立獨行的書呆子,冒著風險、打破規則、將世界推往全新的方向。加上來自出色黑客的更新資料,像是比爾‧蓋茲、馬克‧札克柏格、理查‧史托曼、史蒂芬‧渥茲涅克等,《黑客列傳》講述引人入勝的故事,從早期的電腦研究實驗室開始,引領至最初的家用電腦。
本書介紹這些充滿想像力的天才人物,他們就電腦工程的難題找出聰明但非正統的解決辦法。他們有共通的價值觀,稱為「黑客倫理」,這個價值觀至今依然蓬勃發展。《黑客列傳》捕捉到近代歷史上的開端時期,當時的地下活動在今日數位世界留下痕跡,包括他們在麻省理工學院費盡心思接近笨重的電腦卡機器,到產生了Altair和Apple II的DIY(自己動手做)文化。
作者簡介:
Steven Levy是《Wired》雜誌的資深記者,也是以前《新聞週刊》的主要科技記者主任暨資深編輯。李維已有六本著作,並且曾在《哈潑》雜誌、《Macworld》、《紐約時報雜誌》、《紐約客》、《首映》、《滾石》等發表文章。
各界推薦
媒體推薦:
「集合出眾的人物……勇敢地探索心靈空間,那是從未有人踏足的內在世界。」
──《紐約時報》
媒體推薦: 「集合出眾的人物……勇敢地探索心靈空間,那是從未有人踏足的內在世界。」
──《紐約時報》
章節試閱
當黑客以修道院外極少見到的虔誠,將自己的技術能力奉獻給運算,他們等同於人類與機器間一種極為大膽的共生前鋒,但黑客並非在某個特定的時刻瞭解到這件事。他們的狂熱就像年輕的重型機車迷喜好加速引擎一樣,所以他們開始無視於幾乎可說是獨特的環境。即使文化的元素正在形成、傳說開始滋生、他們在程式設計上的掌握開始超越之前有紀錄的技術等級,這十幾個黑客卻不情願承認他們那與TX-0有密切關係的狹小社團已經緩慢而隱蔽地拼湊出整套概念、信仰、習慣。
這種黑客倫理具有革命性,其戒律與其說是爭論或討論出來,還不如說是大家默許的。沒有任何宣言發行。沒有傳教士努力聚集皈依的信徒。電腦改變人的信仰,黑客倫理最為忠實的信徒是像山姆森、桑德斯、科托克等人,他們在麻省理工學院之前的生活看起來就只是序曲,銜接到他們在TX-0控制台後實現自我的時刻。之後的黑客對待這秘而不宣的倫理要比TX-0黑客更加慎重,像是傳奇性的葛林布雷特(Richard Greenblatt)或者高士伯(Bill Gosper),雖然多年之後黑客主義的宗旨才有明白充分的描述。
但是,在TX-0的時代,黑客守則已經存在。黑客倫理:
電腦的取用──以及任何可能教導你有關世界運轉的事物──應該全面且不受限制。永遠遵守親手操作守則!
黑客相信,從拆解東西、看見運轉的方式、利用這知識創造全新甚至更有趣的東西,可以學到有關系統──有關世界──的重要課程。他們憎恨任何不想讓他們做這些事的人、實際障礙、法律。
當黑客想要修理某樣(從他的角度而言)故障或需要改進的東西時,這顯得更為正確。不完美的系統讓黑客憤怒,他們的原始本能是替系統除錯。這是黑客一般而言痛恨開車的原因──那隨意規劃的紅燈和位置怪異的單行道所組成的系統導致如此該死的不必要延遲,以致於他們有所衝動,想要重新規劃號誌、打開紅綠燈的控制箱……重新設計整個系統。
在完美的黑客世界裡,如果一個人憤怒到想打開紅綠燈附近的控制箱,拆開並改進,那大家應該樂見其成。妨礙你拿到這類事物的規則太過荒謬,根本不需要考慮是否遵守。這種態度讓鐵路技術社在極端非正式的基礎之上,開始了午夜徵用委員會。當鐵路技術社需要一組二極體或額外的繼電器,替系統組裝新功能時,幾個信號與電力小組的成員就會等到晚上,找到並進入放那些東西的地方。這些黑客在其他事情上通常嚴謹而正直,似乎沒有人將這件事等同於「偷竊」。有意地視而不見。
所有資訊都應該不受限制。
如果你沒辦法獲得需要用來改進東西的資訊,你要怎麼修理?資訊的自由交換,特別是當資訊以電腦程式的形式存在時,允許更大的整體創造力。當你在像TX-0這種幾乎沒有任何軟體的機器上工作,大家發狂似地寫系統程式,讓程式設計更加簡單──用來製造工具的工具,這些系統程式放在控制台旁邊的抽屜,任何使用機器的人都能輕易取用。這預防了令人恐懼且浪費時間的重複發明儀式:並非大家都替同樣程式寫下自己的版本,而是大家都能拿到最好的版本,讓所有人都能自由探索程式碼,並以那程式碼為基礎改進。這個世界充滿功能齊全的程式、削減到最精簡的程度、除錯到完美的地步。
有時候資訊應該不受限制這個信仰被無條件地接受,但這信仰直接貢獻到精彩的電腦,或者電腦程式運轉的方式──二進制位元沿著最直接了當的邏輯路徑前進,完成複雜工作。電腦如果不受益於資訊自由流動,那還是電腦嗎?如果累加器無法從輸入/輸出(I/O)裝置,像是紙帶讀取器或開關獲得資訊,整個系統就會崩潰。以黑客的觀點來看,任何系統都能從資訊的順暢流通受益。
不要信任權威──提倡分權。
促進資訊自由交換的最好方法是開放系統,這代表當黑客追求知識、改進、線上時間時,他與所需的資訊或設備間毫無界線。你最不需要的就是官僚作風。無論是企業、政府、大學,官僚作風都是有缺陷的系統,無法容納至尊黑客的探索衝動,而且相當危險。官僚藏身專制規則(相對於機器和電腦程式操作所依賴的邏輯演算法)之後:他們實行這些規則來鞏固權力,並將黑客的建設性衝動視為威脅。
官僚世界的象徵可在一家叫做國際商務機器股份有限公司(International Business Machine)──IBM──的大公司發現。這家公司的電腦都是批次處理的大怪獸,原因只有部份是真空管科技。真正的原因是因為IBM這家笨重的大公司不瞭解黑客的衝動。如果IBM為所欲為(鐵路技術社的黑客這麼想),這世界就會是批次處理、以那些煩人的打洞小紙卡作為規劃基礎,只有地位最高的祭司才能獲得與電腦互動的許可。
你只要看看IBM世界的居民,注意到他們扣子全部扣上的白襯衫、夾得整齊的黑色領帶、精心梳過的頭髮、手中拿著的一疊打洞紙卡,就能明白。你可以晃進計算中心,裡頭放了704、709,還有後來的7090──IBM能提供的最好機器──然後發現那令人窒息的井然有序,甚至延伸到用繩子圍起,只有獲得許可的人員才能進去的區域。而你可以將這與圍繞在TX-0周圍那極為隨意的氣氛比較,在那裡亂糟糟的衣服是常態,幾乎所有人都能隨意進出。
現在,IBM做出而且也會繼續去做許多讓運算進步的事情。只光靠這家公司的規模以及龐大的影響力,這家公司讓電腦成為美國生活永恆的一部分。對許多人而言,「IBM」和「電腦」幾乎是同義詞。IBM的機器可靠耐用,值得商人與科學家投資信賴。這有部分是因為IBM採取保守策略:這家公司不會生產科技上最進步的機器,而依賴已經獲得證明的概念,以及謹慎而猛烈的行銷。因為IBM已經確立市場主導地位,這家公司本身成為帝國,鎖國且自命不凡。
真正讓黑客瘋狂的是IBM祭司和次級祭司的態度,他們似乎認為IBM才擁有「真正」的電腦,其他機器都是垃圾。你無法與那些人交談──他們令人無法忍受。他們是批次處理一族,這不只表現在他們對機器的喜好上,也在他們對計算中心及世界運作方式的想法上。那些人永遠無法理解分權系統的優越,在這系統裡沒有人下命令──大家都能追尋自己的興趣,如果中途在系統發現缺陷,就會開始進行目標遠大的手術。不需要拿申請表。他們只想把事情做好。
這種反官僚的傾向與許多黑客的個性完美地結合在一起,他們從童年開始,就已經習慣於打造科學計畫,其他同學則互相衝突或在運動場上學習社交技巧。這些年輕人一度是邊緣人士,現在則發現電腦是完美的武器,感受到,根據彼得‧山姆森的說法:「就像你打開門,走進這全新的宇宙……」一旦他們通過那扇門,坐在百萬美元的電腦控制台後方,黑客就有了力量。所以自然而然,他們不信任任何可能想限制那種力量的勢力。
黑客應該要以他們的黑技來衡量,而非虛假的標準如學位、年齡、種族、職位等。
TX-0社群(雖然非黑客的研究生不算)毫不猶豫地接受十二歲的彼得‧德意緒就是個好例子。同樣的,那些看起來似乎條件出色的人,要到他們在電腦控制台證明自己之後,才會被當成一回事。這種以知識為導向的特質不見得根源於黑客內心生來的良善──那主要是因為比起表面的特徵,他們更在乎對方是否有潛力提高黑技的普遍情況、創造值得讚賞的新程式、談論系統的新功能。
你在電腦上可以創造藝術與美麗。
山姆森的音樂程式是個例子。但對黑客而言,程式的藝術不在於獻上喇叭傳出的迷人聲響。程式碼本身有自己獨特的美感。(雖然山姆森特別不喜歡在程式碼加上註解,解釋他某個時候在做什麼事。山姆森有個程式廣為流傳,包含數以百計的組合語言指令,卻只有一個含有1750這個數字的指令有註解。這個註解是RIPJSB,大家絞盡腦汁想不出其中含意,直到有人發現巴赫死於一七五零年,山姆森的註解意思為約翰‧瑟巴斯提安‧巴赫願你安息Rest In Peace Johann Sebastian Bach的縮寫。)
程式設計的風格已經出現某種審美。因為TX-0受限的記憶體空間(當代所有電腦都有這個缺陷),黑客逐漸深為欣賞各種創新技巧,用非常少的指令讓程式完成複雜的工作。某個程式越短,其他程式可用的空間越多,而且程式的運轉也越快。有時當你不需要太快的速度或太多空間,也不用考慮藝術與美麗,就會黑出醜陋的程式,用「蠻力」解決問題。「嗯,我們如果加上二十組指令就能做到這件事,」山姆森可能對自己這樣說:「而寫指令這樣做,比在首尾想出迴圈、用七八個指令做同樣工作要快。」但他的黑客同伴可能會讚賞後者;有些程式精巧地削減到最少的指令,以致於作者的同儕看到時,幾乎要因敬畏而融化。
有時候程式削減變成競爭,一種男子漢氣概競賽,證明自己能夠控制系統到找出優雅的捷徑,砍掉一兩個指令,或更厲害地重新思考整個問題,想出全新的演算法,節省整段指令。(演算法是特別的程序,可以應用在解決複雜的電腦難題;有點像數學的萬能鑰匙。)通常從別人從沒想過的離奇角度來考慮問題時,最能做到這點,但回頭來看,又很理所當然。能做到這點的人絕對擁有藝術衝動,充分利用彷彿來自火星的天才技巧──有如黑魔法、前瞻性的特質,讓他們能夠拋棄地球聰明人類的陳腐展望,提出全新而沒有人想到的演算法。
十進制列印常式的程式就出現這種情況。這是一種次常式──程式內的程式,你有時可以在許多不同的程式裡納入這個程式──將電腦給你的二進制數字翻譯成一般的十進制數字。以桑德斯的話來說,這個問題變成「程式設計基礎的基礎──如果你能寫出可用的十進制列印常式,你對電腦的瞭解就足以勉強自稱為程式設計師。」而如果你寫出精彩絕倫的十進制列印常式,你可能就能自稱為黑客。這不只是競爭,十進制列印常式的終極削減最終成為黑客聖盃。
幾個月內出現各種版本的十進制列印常式。如果你特別不擅長這個程式,或你真的是低能兒──徹頭徹尾的「輸家」──你可能需要數百個指令才能讓電腦把機器語言轉化成十進制。任何稱職的黑客都能用更少的指令做到這件事,最後,當最好的程式出現,在各處削減指令後,這個常式最終少到大概五十個指令的地步。
在那之後,事態就嚴重了。大家努力很久,想辦法用更少行程式碼做到同樣的事情。這變得不只是競爭而已;這是英雄的探索旅程。所有花費的努力似乎都沒辦法打破五十行屏障。大家開始猜測:是否真能用更少行程式做到這點。程式削減是否真有極限存在?
在所有探索這個難題的人當中,有個叫做簡森(Jensen)的傢伙,他是個高大沈默的黑客,來自緬因州,常常安靜地坐在拼湊房內,以鄉下人削木頭的沈穩態度,在印出的紙上塗塗改改。簡森總是在找方法壓縮程式的時間與空間──他的程式碼完全是古怪的連續,由布林函式和算術函式組成,通常讓好幾個不同的計算在同一個十八位元「詞」的不同區域發生。驚人的事情,神乎奇技。
在簡森之前,一般同意,十進制列印常式唯一的邏輯演算法要讓機器重複減法,使用十次方表格讓數字在正確的數位欄內。簡森卻覺得不一定需要十次方表格;他提出的演算法能夠以相反的順序轉化數字,藉由巧妙的手法,將數字用正確的順序列印出來。只有當黑客看到簡森的程式貼在公佈欄上,他們才能理解當中複雜的數學原理,簡森用這種方式告訴他們,他的十進制列印常式縮減到四十六個指令。盯著程式碼的人下巴都掉了下來。
瑪姬‧桑德斯記得黑客在之後幾天安靜得很不尋常。
「我們知道這就是結局,」鮑伯‧桑德斯之後說「那就是涅槃。」
電腦可以改善你的生活。
這個信仰並不明顯。黑客很少會想把電腦知識風格的各種優勢強加給圈外人。但是,這個前提主導了TX-0黑客以及後續黑客世代的日常行為。
的確電腦改變他們的生活、豐富他們的生活、賦予他們生活重心、讓他們的生活充滿冒險。電腦讓他們成為部份命運的掌控者。彼得‧山姆森之後說道:「我們這麼做的原因有百分之二十五到三十是因為我們可以這麼做,而且做得很好,百分之六十是因為電腦可比喻成有生命的事物,幾乎可說是我們的孩子,在我們結束後,可以自己運行。這是程式設計的美妙之處,擁有魔法般的吸引力……一旦你解決(電腦程式的)行為問題,就一勞永逸,完全以你想要的方式解決。」
就像阿拉丁神燈,完全遵從你的命令。
的確每個人都能從感受這種力量中獲益。的確每個人都能從以黑客倫理為基礎的世界受益。這就是黑客不言而喻的信仰,而黑客毫不客氣地延伸關於電腦可以做什麼並應做什麼的傳統觀點──引導世界以全新的方式看待電腦,與電腦互動。
這過程並不輕鬆。即使在麻省理工學院這樣前衛的學院,有些人依然認為與電腦瘋狂的密切關係太過愚蠢,甚至精神錯亂。鐵路技術社的黑客羅伯特‧華格納有一次必須向工程學教授解釋電腦是什麼。華格納上數值分析課程時,更加明顯地感受到電腦與反電腦間的衝突,這堂課教授要求所有學生用嘎嘎作響的笨拙機電計算機做作業。科托克也上了同堂課,他們一想到要用那些低科技機器就感到萬分膽寒。「為什麼我們還要這麼做,」他們問道:「當我們已經有電腦之後?」
所以華格納開始著手寫可以模擬計算機的電腦程式。這個想法引起軒然大波。對某些人而言,昂貴的機器時間不該如此使用。根據對電腦的標準看法,電腦的時間如此寶貴,所以要做的事情應該要能最大利用電腦,像是那些不用電腦就得讓滿房間數學家花上很多天做機械性計算的事情。黑客另有看法:任何看起來有趣或好玩的事情都可用在運算上──使用互動式電腦時,因為沒有人在背後監視你,也沒有人跟你要特定計劃的許可,你可以照著這個信仰行動。在一台不能用簡單方法執行基礎乘法的機器上,與複雜的浮點數算術(必須讓程式知道小數點要放在哪裡)奮戰兩到三個月後,華格納寫下三千行程式碼來做這件事。他讓昂貴得不得了的電腦執行價值只有其千分之一的計算機功能。為了稱頌這反諷,華格納把這程式叫做「昂貴的桌上計算機」(Expensive Desk Calculator),並自豪地用這程式完成課堂作業。
他的分數──零分。「你用了電腦!」教授告訴他:「這不可能是對的。」
華格納甚至不屑解釋。他要怎麼告訴老師,電腦正將一度是不可置信的可能性化為現實?或者有另一個黑客甚至寫了叫做「昂貴打字機」的程式,將TX-0轉變成你可以在上頭寫文字的機器,以字串處理你的作品並用Flexowriter列印出來──你能想像教授收電腦寫出的作業報告嗎?教授要怎麼能夠──實際上任何不曾沈浸在這未知人機宇宙內的人,要怎麼能夠──理解華格納和他的黑客同伴例行地使用電腦模擬,以華格納的說法是「很難用其他方式想像的奇怪狀況」?和所有人一樣,教授會慢慢理解,電腦開啟的世界沒有極限。
如果還有人需要進一步的證據,你可以引用科托克當時在計算中心進行的計畫,那是留著鬍鬚的人工智慧教授約翰‧麥卡錫「大叔」(他的黑客學生開始這麼叫他)在IBM 704上開始的西洋棋計畫。雖然科托克和幾個其他幫忙他做這個計畫的黑客,對於IBM遍布機器及機器身旁的人的批次處理精神只有輕蔑,他們還是想辦法佔據一些深夜時間,以互動的方式使用機器,並且與704的系統程式設計師開啟一場非正式的戰爭,看看哪一群人會被當成比較大的電腦時間消費者。彼此來回領先對方,而白襯衫黑領帶的704一族心悅誠服,讓科托克與他的同伴實際碰觸704上的按鈕與開關:這可是與那被過份吹噓的IBM怪獸難得的感官接觸。
科托克在西洋棋計畫的活躍所扮演的角色,說明了人工智慧領域裡,黑客將要扮演的角色:像麥卡錫或其同僚馬文‧明斯基(Marvin Minsky)這類大頭會開始計畫,或大肆考慮某件事是否可行;如果黑客感興趣,則會著手進行。
這西洋棋程式之前是用福傳(FORTRAN)語言寫的,這是早期的電腦語言。電腦語言比組合語言看起來更像英語、更容易使用、可用更少的指令做更多的事情;然而,每次用福傳這種電腦語言給電腦下指令,電腦都必須先將指令翻譯成自己的二進制語言。叫做「編譯器」的程式做這件事,編譯器做這件事需要花時間,也佔據電腦內的可貴空間。實際上,使用電腦語言讓你離與電腦直接接觸更遠一步,比起像福傳這種更不優雅但「更高階」的語言,黑客通常更偏好組合語言或他們稱為「機器」語言的工具。
但是科托克發現,西洋棋程式必須要處理大量數字,所以程式的一部分必須使用福傳,另一部份必須使用組合語言。他們分部黑這個程式,利用「棋步產生器」、基本資料結構、各種創新的演算法策略。機器輸入移動棋子的規則後,他們給電腦一些參數,衡量自己的位置、思考各種棋步、決定讓自己處於最有利情況的棋步。科托克在這計畫上花費很多年,當麻省理工學院持續升級IBM的電腦,程式也在持續發展,在一個值得紀念的晚上,一些黑客聚集在一起,看著程式在一場真實比賽內走出最初的棋步。電腦的開局還算不錯,但走了八步左右,就出現麻煩,電腦即將被將軍。每個人都猜測電腦要怎麼反應。這花了點時間(大家都知道在這些停頓裡,電腦實際上正在「思考」,如果你對思考的看法包含機械性地考慮各種棋步、衡量這些棋步、否決大部分、用一套預先定好的參數最後做出決定)。最後,電腦把一隻卒往前走兩格,違反規則地跳過另一個棋子。錯誤!但是個聰明的錯誤──這讓電腦脫離險境。或許程式本身正在找出某種新的演算法,征服西洋棋。
在其他大學裡,當時正有教授發表宣言,認為電腦永遠不可能在西洋棋上打敗人類。黑客看得更加明白。他們引導電腦到達比任何人預期都還要高的高度。藉著與電腦收穫豐富、充滿意義的聯繫,黑客會是最初的受益人。
但他們不會是唯一的受益人。在智力自動化的世界裡,任何人都能從使用能思考的電腦獲益。如果大家與黑客倫理的追隨者一樣,以強烈的懷疑主義對待官僚作風、開放創造力、無私地分享成就、促使改進、渴望動手,他們不會受益更多嗎?如果大家在沒有偏見的基礎之上接受別人,就像電腦接受任何在Flexowriter輸入程式碼的人一樣,不會有更多益處嗎?如果我們從電腦學到創造完美系統的工具,並且在人類系統開始模擬這種完美,我們不會受益嗎?如果所有人都能像黑客一樣,以同樣純真、充滿生產力、創造的衝動與電腦互動,黑客倫理或許能夠擴散到整個社會,像是慈善的漣漪一樣,而電腦的確能夠改善世界。
在麻省理工學院如修道院一般的空間,大家有足夠的自由實踐這個夢想──黑客夢想。沒有人敢認為這個夢想會推廣開來。相反地,就在麻省理工學院這裡,大家開始打造黑客的世外桃源,獨一無二,可能永遠無法再重現。
當黑客以修道院外極少見到的虔誠,將自己的技術能力奉獻給運算,他們等同於人類與機器間一種極為大膽的共生前鋒,但黑客並非在某個特定的時刻瞭解到這件事。他們的狂熱就像年輕的重型機車迷喜好加速引擎一樣,所以他們開始無視於幾乎可說是獨特的環境。即使文化的元素正在形成、傳說開始滋生、他們在程式設計上的掌握開始超越之前有紀錄的技術等級,這十幾個黑客卻不情願承認他們那與TX-0有密切關係的狹小社團已經緩慢而隱蔽地拼湊出整套概念、信仰、習慣。
這種黑客倫理具有革命性,其戒律與其說是爭論或討論出來,還不如說是大家默...
目錄
第一部:至尊黑客
第一章|鐵路技術社
第二章|黑客倫理
第三章|星際戰爭
第四章|葛林布雷特與高士伯
第五章|午夜電腦手術社
第六章|贏家與輸家
第七章|生命遊戲
第二部:硬體黑客
第八章|二一零零年騷亂
第九章|人人皆神
第十章|自製電腦俱樂部
第十一章|簡化培基語言
第十二章|渥茲
第十三章|秘密
第三部:遊戲黑客
第十四章|巫師與公主
第十五章|兄弟會
第十六章|第三代
第十七章|夏令營
第十八章|跳蛙遊戲
第十九章|蘋果節
第二十章|巫師大戰巫師眾
第四部:最後的至尊黑客
最後的至尊黑客
後記:十年之後
後記:二零一零
註解
誌謝
第一部:至尊黑客
第一章|鐵路技術社
第二章|黑客倫理
第三章|星際戰爭
第四章|葛林布雷特與高士伯
第五章|午夜電腦手術社
第六章|贏家與輸家
第七章|生命遊戲
第二部:硬體黑客
第八章|二一零零年騷亂
第九章|人人皆神
第十章|自製電腦俱樂部
第十一章|簡化培基語言
第十二章|渥茲
第十三章|秘密
第三部:遊戲黑客
第十四章|巫師與公主
第十五章|兄弟會
第十六章|第三代
第十七章|夏令營
第十八章|跳蛙遊戲
第十九章|蘋果節
第二十章|巫師大戰巫師眾
第四部:最後的至尊黑客
最後的至尊黑客
後記:十年之...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。