[閱讀筆記] 駭客與畫家


這本是十年前的舊書,原文版是2004年出版的。2004年,那是還沒有iPhone的世界,Ajax技術尚未盛開,Facebook剛成立,Google才剛買下Blogger。

作者葛拉漢(Paul Graham),1995年創立Viaweb,那是一個用Lisp寫的網站,全世界第一個網路商城ASP服務,他可以算是SaaS的祖師爺。Viaweb後來被Yahoo併購,改稱Yahoo Srore。後來他從Yahoo離職,創辦了Y Combinator。他同時也是第一個想到要用統計學貝氏定理的概念解決垃圾郵件的問題,所以也是現代防垃圾郵件技術的發明人。2008年他提出反駁金字塔,成為網路言論反駁意見的立論基礎,被鄉民稱作「如何嘴砲金字塔」。

本書包含了十五篇散文型式的文章,都在闡述作者對於技術的看法,提到他對於財富的觀點,以及他認為一個駭客該有的認知與責任。本書所稱的『駭客』,不是指入侵電腦的人,而是「一個能隨心所欲操控電腦的人」,更進一步來說是「用很聰明的方法,顛覆現有系統的人 (系統不一定是電腦系統)」。

『駭客與畫家』是其中一篇文章,因為作者本身也是畫家,他認為駭客和畫家很像,相似之處是:
  • 都是創作家
  • 都是自己動手去做
  • 不同時期的作品,會留下學習的軌跡
  • 依據範例學習
  • 作品是由逐步改進到完美
  • 常以多人協作的方式完成作品,大師畫主要的部分,助手處理其他地方和背景。
而駭客和畫家不同之處是:畫家都是死後成名,駭客都是在世時就功成名究

Graham在書中提了一些預測,十年後大多成真,他預測了:
  • 十多年前就預測未來用戶端裝置可能是電話,而資料則儲存在遠端網站,雲端的雛型十多年前就在他的腦中成形,真是先知
  • 「蘋果電腦的iPod如果搭配瀏覽器在手機上,微軟將面臨大麻煩」,這就是iPhone
  • 「預期微軟將開發某種伺服器與桌上型電腦的混同軟體」,這就是微軟Office 365
  • 「Java將像Cobol走入演化的死胡同」
不過他也有些事沒有預測正確,包括:
  • 「在底層硬體有了驚人的速度後,平行計算將可配合明確要求而取得,但通常不會用到。百年之後,除了特殊的程式外,我們採用的平行計算不會是大量平行計算」,但他沒料到Google用了Map-Reduce技術,實現大量平行計算的能力
  • 他認為Javascript語法怪異,不適用在網頁技術上。但他沒料到,後來的Ajax技術風起雲湧,使的Javascript成為當今網頁開發的主流。
本書後半部花了六章的篇幅在談程式語言。

程式語言的威力各有不同,順從工程師自己的意願去選擇,無需理會管理者的意見。不過實務上很難,因為職場上多的是不懂裝懂的人,這些人偏偏又都是主管和資深同仁,也是書中說的「對於技術一竅不通,對技術面的意見很多」的「豬頭老闆」

有的工程師偏愛追求技術趨勢,轉換新的語言。本書提到,「程式語言不只是科技,也是思考習慣」。有人偏愛Python以空白取代括號的排版方式,有人喜歡javascript匿名函數回呼的寫法,有人喜歡Ruby動態語言的特性,有人喜歡C#的Lambda語法,青菜蘿蔔,各有所好。所以,你無法相信其他人推薦的程式語言,因為「大家都滿足於目前正在使用的語言,它支配了你對程式的想法」。也不要以為某種語言特別強大。畢竟就圖靈等價(Turning-equivalent)的觀點,所有語言的威力都相同,都寫得出程式。

就像十幾年前學JavaScript好像不夠酷,因為大家都去學Java。風水輪流轉,自從Ajax被發揚光大之後,現在JavaScript很火,Java則快被接上葉克膜。

選擇一個適合自己的語言,然後練習到如火純精的地步。如果自己無法下決定選擇適合的語言,那就順從專家意見—追隨頂級駭客的腳步,或多多關注歐禮萊出版的書籍。

總之,這是很值得閱讀的一本書,唯一的瑕疵就是有些地方的翻譯怪怪的。


延伸閱讀


相關文章

如何將電腦畫面經由 Chromecast 投放到電視螢幕上

Chrome 的檔案續傳功能

Mac與Android裝置傳輸檔案的方法

使用 Vysor 在電腦上控制 Android 裝置