資訊科學是一門充滿創造力與人性的學科,這不是一般人對它的印象,但這恰恰正是《勇闖資訊新未來 》(Out of their minds )所要歌頌的。
大眾想像中的電腦科學家,通常是一群只懂 0 與 1、不善言辭的人。他們像數學家或是物理學家的近親,只是更宅一點,更二次元一點。
事實上,許多人確實有點這個傾向。 但更準確地說,他們其實是一群瘋狂的規則設計師。
如果讓一群演算法大師來設計一款桌遊的話,它的複雜度絕對超過《蓋亞計畫》(Gaia Project )或《工業革命:伯明翰》(Brass: Birmingham ),而且說明書會有 100 頁,第一頁還會寫著:「首先,假設你有一台無限大記憶體的圖靈機……」
如果要用一個不太精確的方式來定義,電腦科學常被視為「演算法」與「資料結構」的學術追求,很抽象但又很實際的應用科學。 但是,這本書裡提到的 15 位巨擘則是超越了純學術或工程實踐的範疇。
沒有他們當年畫在白板(感覺更可能是黑板)上的幾何圖形與數學公式,我們現今的數位生活將會遲上數年,甚至可能不復存在。
萊斯利.蘭波特(Leslie Lamport)在分散式系統上打下的重要基礎,至今天仍支撐千萬人同時在線的影音串流世界;丹尼爾.希利斯(Danny Hillis)在平行運算架構上的遠見,使得電影裏炫目逼真的電腦圖學(CG)特效得以問世。
這些時代巨擘,是將抽象難懂的邏輯轉化為真實數位世界的魔法師。沒有他們的話,現在的 Netflix、Spotify、KKBOX、……,都還只停留在科幻小說的某個篇章裡頭。
在這些先行者中,也有些是真正的叛逆者;他們有點像科技界的搖滾巨星,他們的作品或觀點讓整個技術界重新思考原有的做法。
使用並推廣 Python 二十年來,我深刻感受到,一門優雅的程式語言能為開發者帶來多大的力量。 艾倫.凱(Alan Kay)與約翰.巴科斯(John Backus)這些「程式語言學家」,在那個硬體效能至上、機器語言主導的年代,硬是提出了讓人類能以更輕鬆的方式與機器對話的工具,顛覆了人機互動的典範。
而有些人的見解則直接挑戰了整個產業的常理。 「架構師」佛瑞德.布魯克斯(Frederick P. Brooks, Jr.)以一句「為延遲的軟體專案加入人力,只會讓它更延遲」,重重地擊碎了無數專案管理者的美夢。他的洞見直指出軟體工程殘酷卻真實的本質,至今仍在業界引起共鳴。
這也是我讀這類資訊科學史時最著迷的地方:有些最重要的進步,不是來自更快的硬體或更大的團隊,而是來自某個人拒絕接受大家習以為常的做法。
還有其他人的思想,徹底改變了我們構築世界的方式。當理論化為實踐的那些時刻,他們的天才便具象化了。
像高德納(Donald E. Knuth)與艾茲赫爾.戴克斯特拉(Edsger W. Dijkstra)這樣的「演算法大師」,他們不追求短視近利的應用,而是去探究運算的最底層真理。 無論是今天因 AI 狂潮而受到關注的向量資料庫,還是處理巨量資料時所使用的各種系統,工程師們至今仍不斷回到他們當年奠定的演算法與思考方法,尋找進一步的解答。
他們讓我重新意識到,真正有生命力的技術,往往不是因為它追上了某一波潮流,而是因為它處理的是不會過時的問題。
翻開這本書,就像是與這 15 位世界上最偉大的電腦科學頭腦坐在同一個房間裡,看著他們如何在混亂的位元中建立秩序。只是,如果真的有機會穿越時空遇到他們,千萬別跟他們玩《神祕大地》(Terra Mystica ),他們很有可能在第一回合,就算出好幾步之後的最佳解了呢!
將近二十年前買的一本書 ,今天重新翻開,裡面談的許多技術早已成為日常生活的一部分。但那些人面對問題時的態度、固執與想像力,讀起來仍然很新鮮。於是有了這麼一篇。