03.02 那些神一樣的程序員

CSDN

The following article comes from 碼農翻身 Author 碼農翻身劉欣

碼農翻身

技術本來是很精彩的啊!

那些神一樣的程序員

作者 | 劉欣

來源 | 碼農翻身(ID:coderising)


在MIT的BBS上曾有一個帖子,其中問道:


“你覺得誰是最厲害的程序員, 為什麼?”


雖然大家在回覆的帖子中聲明最厲害的程序員排名不分先後,然而大多數人仍把Bill Joy列在第一位。


Bill Joy?


年輕的程序員也許已經不知道他是誰了,但是他留在這個世界上的作品你一定知道,今天來講一講Bill Joy這位神一樣的程序員。


那些神一樣的程序員

Ken Thompson


1975的秋天,Unix光環加身的大神Ken Thompson休了一個長假,他回到了自己的母校,加州大學伯克利分校,他將在這裡以訪問學者的身份待一學年。


那些神一樣的程序員

(Unix,Go語言發明人Ken Thompson,左,圖源 | 維基百科)


在伯克利分校,Ken Thompson把Unix v6 安裝到了最新的機器PDP 11/70上面,並且開設了一門Unix的課程。


那些神一樣的程序員

(PDP-11/70,圖源 | 維基百科)


他不僅講解理論,還在晚上帶著大家閱讀一行行的Unix內核代碼,向大家解釋為什麼這麼做。


每個晚上,學生們都圍繞在Ken Thomphson周圍,瞪著一雙雙求知的大眼睛,聆聽Unix作者的教誨,實在是太幸福了!


這些學生當中有一個研究生,Bill Joy, 也是我們故事的主人公。


那些神一樣的程序員


那些神一樣的程序員

做一個黑客


Ken Thompson通過Unix在伯克利大學激發了黑客精神。


有一天Ken Thompson在PDP 11/70 機房“閒逛”的時候,在Unix上隨手寫了一個不太完善的Pascal編譯器,這令Bill Joy大開眼界,原來黑客就是這麼玩的啊!


Bill Joy在用Pascal寫項目作業的時候,很快他發現了編譯器的缺陷,他也決定做一個黑客,把這個編譯器改好。


那時候沒有IDE,他們使用一個叫ed的文本編輯器來程序,ed也是大神Ken Thompson寫的,但是它實在是不好用,後來有人寫出了em,Bill Joy和Chuck又改進了em, 把它變成了en ,然後是eo, ep...... ex。


必須要提一下,那時候並沒有顯示器,大家用的都是teleprinter :


那些神一樣的程序員


ed,en,ex們和我們現在用的文本編輯器不同,是所謂的“行編輯器”, 它們有什麼特點呢?


你想在文檔中任意移動光標,選取要編輯的文本段落?對不起,不行!你只能以行為單位進行上下移動!


你好不容易定位到了一行,想改這一行的某個詞,對不起,不行,你得刪除這一行,然後重新輸入!


當時的程序員過的都是什麼日子啊!


Bill Joy 使用ex這個“趁手”的工具,很快就把Thompson留下的“爛攤子”Pascal編譯器給收拾好了,新的Pascal編譯速度很快,運行起來也很快,深受學生們的喜愛。


後來,伯克利大學購買了一批叫做ADM-3A的終端,在屏幕上終於支持可以隨意移動的光標了!


Bill Joy 欣喜異常,他重新設計了ex, 增加了“可視化模式”,ex變成了大名鼎鼎的vi。


那些神一樣的程序員

(使用vi 編輯hello world)


vi這個編輯器讓無數程序員愛不釋手,更讓無數程序員從入門到放棄。還和另外一個神器Emacs開啟了長達幾十年的論戰:到底誰是最好的編輯器?


有個笑話說:如果讓計算機生成隨機數呢?


答:讓新手退出vi。


那些神一樣的程序員

BSD誕生!


1976年夏天,“休假”滿一年的大神Ken Thompson返回了貝爾實驗室, 他雖然走了,但是他撒播下的黑客的種子開始生根發芽。


Bill Joy和其他同學此時對Unix內核越來越感興趣,他們發揮真正的黑客精神,不斷地對Unix進行改進和增強,比如Bill 覺得Unix自帶的Shell不爽,自己開發了一個C Shell (csh)。


與此同時,他的Pascal編譯器有著良好的聲望,很多人都想要一個Copy。


Bill Joy突發奇想,為什麼不把Pascal編譯器,ex編輯器(還有後來的vi編輯器),以及其他對Unix的增強一起打成一個新的包,重新分發呢?


於是在1977年早些時候,著名的Berkeley Software Distribution,即BSD 誕生了!


那些神一樣的程序員

(BSD 的logo 小惡魔)


BSD發佈之後大受歡迎,各個學校和公司都在使用,後來相繼發展出了3BSD、4.0BSD、4.1BSD、4.2BSD、4.3BSD,還有些後繼產品如FreeBSD,NetBSD,OpenBSD,NeXTSTEP等, 其中NeXTSTEP最終演化成了蘋果公司名揚天下的MacOS。


BSD不斷增長的影響力引起了AT&T(貝爾實驗室的母公司, Unix版權所有者)的不爽,AT&T和伯克利大學打了一場曠日持久的官司,我們按下不表。


那些神一樣的程序員

關於TCP/IP的傳奇故事


接下來就是一個傳奇的故事,關於TCP/IP。


當時,國防高級研究計劃局(DARPA)主導了計算機網絡的發展,由於BSD的良好表現,伯克利獲得了DARPA的合同,希望能增強BSD,可以支持DARPA的網絡。


當時有一家叫BBN的公司,曾經參加過ARPANET的建設,獲得了實現TCP/IP協議棧的合同。


TCP/IP協議是互聯網的基石, 讀過的人都知道,光是理解這些協議就非常不容易,更不用說準確地、高性能地實現它們了。


BBN把TCP/IP協議棧實現以後,DARPA要求Bill Joy集成進BSD,但是被Bill拒絕了,他理由很簡單:BBN寫的TCP/IP性能太差了!還不如我自己寫一個!


Bill Joy說到做到,很快就手寫了一個高性能的版本,集成進了BSD。當被問道是怎麼實現TCP/IP的時候, Bill Joy說:這非常簡單,你只要讀一下協議,然後寫代碼就行了。


一個人打敗了一個公司,這讓BBN非常難堪!


那些神一樣的程序員

聯合創立Sun公司


1979年, Bill Joy 獲得了伯克利大學的電氣工程與計算機科學碩士學位,1982年他作為聯合創始人創立了Sun 公司,作為首席科學家一直到2003年。


在這期間,他的成就依然無與倫比:


Network File System(NFS)的主要設計人。


微處理器 SPARC 的主要設計者(軟硬通吃啊!),SPARC是Sun工作站的核心,每年給Sun帶來幾十億美元的收入。


很多重要技術的靈感來源:Java, Jini , JXTA。


那些神一樣的程序員

Bill Joy定律“封神”


vi編輯器, c shell , BSD Unix, TCP/IP協議的實現, NFS, SPARC處理器,一個人能搞定任意一樣,足以在計算機的歷史上刻下自己的姓名。


可是Bill Joy居然以一己之力創造了這麼多的東西,讓我們歎為觀止。可是他想要“封神”, 還差一樣東西:以他的名字命名的定律,或者法則。


這難不住Bill Joy, 以他的名字命名的有兩個定律:


Bill Joy 定律1 :

從1984年起,計算機的峰值計算速度,每年翻一倍。


Bill Joy 定律2 :

不管你是誰,大多數絕頂聰明的人總是在為另外一個人或者組織工作。


分享到:


相關文章: