Cyber-Security:黑客與技術、產業及其精神世界 頂 原 薦

理解計算機的關鍵,則是要理解計算機背後的人。表面上這是一個機器的時代,但是實際上機器的社記者決定了我們的時代。

《黑客與畫家》(Hackers & Painters) 的內容來自 Paul Graham 的博客,該文集主要討論編程語言、黑客工作方法以及作者對於教育、版權制度和創業精神等方面的觀點。書中的內容不但有助於瞭解計算機編程的歷史、互聯網行業規則,還有助於讀者瞭解我們這個時代,走進 Hacker 的精神世界。

黑客(hacker):解釋一,最優秀的程序員;解釋二,入侵計算機的人。本書特指第一種人。

  • 原作者:Paul Graham (保羅·格雷厄姆) 美國著名程序員、風險投資家、技術作家。Paul Graham 以 Lisp 方面的工作而知名,也是最早的Web應用Viaweb的創辦者之一,後來以近5千萬美元價格被雅虎收購,成爲Yahoo! Store。他擁有哈佛大學應用科學(計算機方向)博士學位,擔任麻省理工學院副教授,並且在羅德島設計學院和佛羅倫薩繪畫藝術學院學習過繪畫。

  • 翻譯者:阮一峯 阮一峯也是一位神人,是國內知名的 IT 技術專家。10 餘年來發表了海量的網絡文章,內容包含讀書、經濟學、歷史、IT技術、醫學、電影、音樂和美術、政治學、科學、創業、互聯網等等等,我知道的好像他都知道。無論是否從事 IT 職業,閱讀他的博客相信都會受益良多。

怎麼理解編程語言?

程序員非常 忠於 他們心愛的語言。編程語言與其說它是技術,還不如說是程序員的思考模式。編程語言是技術和宗教的混合物。(p178)

在不考慮其他因素的情況下,總的來看,對於應用程序來說,選擇總體上最強大、效率也在可接受範圍內的編程語言

如果從 圖靈等價(Turing-equivalent) 的角度看來看,所有語言都是一樣強大的,但是這對程序員沒有意義。關於強大很難正式定義,有一個解釋方法是一些功能在一種語言是內置的,但是在另一種語言中需要修改解釋器才能做到,那麼前者就比後者更強大。

如果A語言有一個運算符可以移除字符串中的空格,而B語言沒有這個運算符,這種情況則不足以稱A語言比B語言強大,因爲你可以在B語言裏寫一個函數實現這個功能。但是A語言支持某種高級功能(假定是遞歸),而B語言不支持,你就不可能通過自己編寫函數庫解決了,這就代表A語言比B語言更強大。

  • 例外情況: 1)如果在開發的程序必須與另一個程序緊密配合,那麼可能最好還是使用後者的開發語言。 2)如果程序只是要做一些很簡單的事(比如整數運算或位操作),那就不妨使用一種比較靠近機器的低層次語言,這樣運行起來會更快一些。 3)如果程序只是爲了特定場合一次性使用,那麼你最好根據自己需要解決的問題選擇具有強大函數庫的語言。

論編程方法

應用軟件運行速度提升的關鍵在於有一個好的性能分析器(profiler)幫助指導程序開發。(p165 )

書上說,調試(debugging)是最後的步驟,用來糾正打字的錯誤和疏忽。可是我的工作方法看上去卻像編程就是在調試。編程語言是用來幫助思考程序的,而不是用來表達你已經想好的程序。它應該是一支鉛筆,而不是一支鋼筆。(p22)

評價一種語言的優劣不能簡單地看最後的程序是否表達得很漂亮,而要看程序從無到有的那條完成路徑是否很漂亮。(p215)

源代碼應該可以自己解釋自己。

程序寫出來是給人看的,附帶能在機器上運行。—— 《計算機程序的結構與解釋》

不要把編程語言看成那些已完成的程序的表達方式,而應該把它理解成促進程序從無到有的一種媒介。這裏的意思是說,成品的材料和開發時用的材料其實是不一樣的。搞藝術的人都知道,這兩個階段往往需要不同的媒介。比如,大理石是一種非常良好、耐用的材料,很適合用於最後的成品,但是它極其缺乏彈性和靈活性,所以不適合在構思階段用來做模型。(p215)

Paul Graham 的個人博客 http://paulgraham.com 截圖。圖中兩人是 斯蒂夫·喬布斯(Steves Jobs) 和 斯蒂芬·蓋瑞·沃茲尼亞克(Stephen Gary Wozniak),他們合夥創立蘋果公司。

論思想自由

Paul Graham 在《黑客與畫家》一書中,始終強調思想自由對人才、對技術進步和公衆利益的極端重要性。例如:

如果別人告訴你該相信什麼,你就真的相信了,那麼你就會和別人一樣犯下同樣的錯誤。(p35)

流行的思想觀點與流行的服飾產生方式不盡相同,但是,它們的傳播路徑卻很相似。第一批的接受者總是帶有很強的抱負心,他們有自覺的精英意識,想把自己與普通人區分開來。當流行趨勢確立以後,第二批接受者就加入進來了,人數比上一批龐大得多,恐懼心在背後驅使着他們。他們接受流行,不是因爲想要與衆不同,而是因爲害怕與衆不同。(p43)

只有保持一定的距離才能觀察到人們觀念的變化,發現流行(也就是人們自以爲是正確的事情)到底是什麼。如果你想要清晰地思考,就必須遠離人羣。(p50)

想要做出優秀作品,你需要一個什麼問題都能思考的大腦。 尤其是那些不應該思考的問題,你的大腦也要養成思考它們的習慣。優秀作品往往來自於其他人忽視的想法,而最被忽視的想法就是那些禁止的思想觀點。

智力越高的人,越願意去思考那些驚世駭俗的思想觀點。這不僅僅因爲聰明人本身很積極地尋找傳統觀念的漏洞,還因爲傳統觀念對他們的束縛力很小,很容易擺脫。從他們的衣着上就可以看出這一點:不受傳統觀念束縛的人,往往也不會穿流行的衣服。

做一個異端是有回報的,不僅是在科學領域,在任何有競爭的地方,只要你能看到別人看不到或不敢看的東西,你就有很大的優勢。(p45)

如果你能“遠遠地”跳出傳統思維,提出讓別人一聽就腦袋轟一聲炸開的驚人觀點,那麼你就在“小小地”跳出傳統思維方面不會有任何困難。要知道,人們把後面的這種情況稱爲“創新”。(p46)

在思想自由和言論自由的關係上,Paul Graham 大聲疾呼:自由思考比暢所欲言更重要!

如果你感到一定要跟那些人辯個明白,絕不嚥下這口氣,一定要把話說清楚,結果很可能是從此你再也無法自由理性地思考了。我認爲這樣做不可取,更好的方法是在思想和言論之間畫一條明確的界限。在心理無所不想,但是不一定要說出來。你的思想是一個地下組織,絕不要把那裏發生的時期一股腦說給外人聽。(p47)

“守口如瓶”的真正缺點在於,你從此無法享受討論帶來好處了。討論一個觀點會產生更多的觀點,不討論就什麼觀點也沒有。

找一些信得過的知己,只與他們暢所欲言、無所不談。這樣不僅可以獲得新觀點,還可以用來選擇朋友。能夠一起談論“異端邪說” 並且不會因此氣急敗壞的人,就是你最應該認識的朋友。

論知識產權

關於知識產權制度,從誕生的那一天起實際上就存在支持/反對兩大陣營。黑客大多堅定地站在反對派陣營,或者說黑客羣體是反對知識產權制度中最重要的一支力量。

首先,對於美國而言,其知識產權制度擁有 200 多年的歷史,擁有強大的知識產權保護體系。

國會應有權......促進科學和實用藝術的進步,確保有限時報作者和發明者的獨家權利,以及他們各自的著作和發現..... 美國憲法第一章第8款

  • 1789 年《憲法》第一章第 8 款
  • 1790年4月10日,美國第一部版權法。保護範圍:圖書、地圖和圖表,之後擴展到攝影、錄音和電影。(大清國乾隆五十五年,同年本傑明·富蘭克林&亞當·斯密逝世)
  • 1909年版權法案。未經授權的複製的定義必須是從視覺上可以看到或閱讀的一種形式(音樂卷片、ROM芯片上下象棋的遊戲等都不在保護之列)。
  • 1976年和1980年,版權法修改,使之涵蓋了計算機軟件。

歷史上,機器內部的控制系統一直是物理裝置:齒輪、槓桿和連接器等。但是,計算機的出現使得機器的控制系統逐漸變成了軟件(包括數據(Data)在內的統稱,例如膠片上的歌曲屬於用物理方法壓制在盤片上的數據)。互聯網的出現使得複製品更容易流通,相關產業公司推動政府通過了嚴厲的法律,保護知識產權,作爲對新技術的迴應。

黑客反對知識產權制度的觀點中,最重要的一條是保護人的“思想自由”

對於版權和專利這樣的制度,黑客深感擔憂。他們感到,保護“知識產權”的力度不斷增大,已經威脅到了他們完成工作所必需的“思想自由”。(p54)

立法者的願意可能是好的。但是,他們也許沒有意識到,這樣的法律弊大於利。(p55)

黑客(Hacker)羣體在許多方面都表現出強烈的精英意識和自覺。例如,他們堅定地認爲,知識產權制度無益於增加公衆福利。不僅破壞思想自由權利,而且有加強極權主義制度的巨大危險。他們堅信,保護人的思想自由,就是保護國家持續發展根本動力,只有獲得獨步天下的技術優勢,纔有可能增加公衆福利,反之,則是非常危險的。

在我看來,一個人們擁有言論自由和行動自由的社會,往往最有可能採納最優方案,而不是採納最有權勢的人提出的方案。專制國家會變成腐敗國家,腐敗國家會變成貧窮國家,貧窮國家會變成弱小國家。…. 極權主義制度只要形成了,就很難廢除。黑客對於公民自由是非常敏感的,因爲這對他們至關重要。他們遠遠地就能感到極權主義的威脅,好比動物能夠感知即將來臨的暴風雨。(p57)

附錄:黑客倫理(hacker ethic)

黑客倫理(hacker ethic)是黑客文化中普遍存在的道德價值觀和哲學觀。起源於上世紀50~60年年代的麻省理工學院(MIT),一個比較流行的版本是由記者 Steven Levy在 1984 年出版的《黑客:計算機革命的英雄》(Hackers: Heroes of the Computer Revolution)一書種提出。

  • (1)使用計算機以及所有有助於瞭解這個世界本質的事物都不應該收到任何限制。任何事情都應該親手嘗試。( Access to computers — and anything that might teach you something about the way to the world works — should be unlimited and total. Always yield to the Hands-On Imperative! )
  • (2)所有信息應該都是自由的。(All information should be free.)
  • (3)不信任權威,提倡去中心化。(Mistrust Authority — Promote Decentralization.)
  • (4)判斷一名黑客的水平應該看他的技術能力,而不是他的學歷、年齡或地位等其他標準。(Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race, or position. )
  • (5)你可以用計算機創造美和藝術。(You can create art and beauty on a computer.)
  • (6)計算機使生活更美好。(Computers can change your life for the better.)

“黑客倫理”的一個必然推論就是,黑客不服從管教,具有叛逆精神。黑客通常對管理者強加的,限制他們行爲的愚蠢規定不屑一顧,會找出規避的方法。

Paul Graham:The people who break rules that are the source of America's wealth and power. 只有那些不服從管教的人們,纔是美國財富與力量的源泉

擴展閱讀

擴展閱讀:《The Cyber-Security Master》

更多精彩內容掃碼關注公衆號:RiboseYim's Blog

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章