然而我要試圖反駁這個觀點,因為地球上有另外一位偉大的程式員,有超過四程式碼農用他的開發工具吃飯。
Linus只用C程式設計而且不到30年,而這位神級程式員在近40年中一直創造引領潮流的開發工具(Turbo Pascal/Delphi/C#/TypeScript),他就是Anders Hejlsberg。
作者 / 來源:金捷幡(ID:jin-jiefan)
01
Anders並沒有大學文憑,但這絲毫不重要。當年微軟Server部門負責人Bob Muglia認為,地球上只有幾個人可以做出偉大的開發工具架構,Anders還是其中那個最棒的,頂尖中的頂尖。
當時,Anders在微軟的競爭對手Borland工作。微軟試圖挖了他一年,但都被婉拒。
比爾蓋茨打電話給Anders,說我可以做什麼才能讓你來。Anders後來回憶說,那是他人生特別尷尬的一個時刻。他已經財務自由,只想做自己熱愛的事。
1996年,Anders和Borland高層有些意見分歧,微軟趁機開出每年300萬美元的高額待遇,更重要的是許諾他可以享有充分的協作資源,終於把這位英雄招至麾下。從後來的貢獻看,也許3000萬請到Anders,也不會虧。
02
Anders是1960年出生在丹麥,父親是摩托羅拉的工程師,典型的科技家庭。Anders在上中學時就開始程式設計,他回憶說那時用的HP2100還是紙帶程式設計。上大學時有個高年級學生喜歡玩Mousehole紙牌遊戲,但是老輸錢給Anders,覺得他很牛,就請他合夥一個小公司叫Polydata。
Anders有臺Z80,這電腦只有4Mhz CPU和32K記憶體,上面有微軟Basic。結果Anders玩了一天就玩膩了,隨後開始玩彙編。大神在20歲就顯露了神跡,他兩三個星期就寫出了Pascal編譯器,並賣給了一個英國公司。然後大神就輟學了,併在多個平臺包括DOS上重寫了Pascal編譯器。
1983年,當時Borland還是個丹麥公司,自己做編譯器做得很爛,找到Anders買了他的編譯器並整合成Turbo Pascal。微軟CTO在一次節目中說,這應該是PC上面第一個真正的整合開發環境(IDE),但Anders很謙虛地說他不知道。
▲Turbo Pascal截圖,好喜歡這個begin…end
當時Anders並未加入Borland,因為Borland後來搬到矽谷去了。Anders選擇遠端服務,因為當時並沒有網際網路也沒有email,當時寄程式碼都是靠聯邦快遞。
1989年,Anders自己的公司Polydata經營不太好,加上女友很嚮往去美國,他就決定去美國加入Borland。
03
Borland當然喜出望外,任命Anders為首席程式員。在Turbo Pascal成功後,Borland又釋出了Turbo C,從而揚名天下。中國第一代程式員好像都是用Turbo C的,包括偉大的王小波同志。
而Anders的主要任務,是秘密開發視覺化環境的超級IDE:Delphi。當時微軟已經推出自己的Visual Basic大獲好評,但一碰到直接編譯二進位制EXE的Delphi立刻被秒成渣渣。
Delphi使用Object Pascal,語言設計極其優雅,完美面向物件,完美結合資料庫,而且可以直接操控作業系統(硬體和網路等),應該說開發Windows原生程式堪稱完美。有意思的是,Delphi上面的VCL和RTL庫都是用Delphi自己開發自己的,自帶的原始碼可以讓程式員學習真正高手是怎麼程式設計的。
▲Delphi 2截圖
當年國內大量著名程式都使用了Delphi,包括張小龍的Foxmail和雷軍的WPS。
後來著名的Borland C++也被直接移植架在Delphi上,這就是C++ Builder。
這時我似乎聽到蓋茨在嘆息,我非得此人不可。
04
Anders加入微軟時,正是網際網路風起雲湧之時。Sun剛釋出了跨平臺可以到處執行的Java,微軟感覺生態受到嚴重威脅,抓緊開發Visual J++和WFC,Anders成了主導人物。VJ++很快成為世界上最快的Java編譯器,並支援ActiveX等微軟生態產品。
Sun發現微軟不用自己的Java虛擬機器,搞出個更快的東西。他們深深憂慮被微軟分裂了Java,所以果斷起訴了微軟。結果微軟敗訴,被迫在VJ++頁面承認和Sun Java不相容,導致了VJ++的最終失敗。
Anders第一次碰到自己的產品不是因為效能問題而失敗,他承認自己有點天真了。短暫沮喪之後立刻恢復了大神本色:我們微軟要自己搞一套和Java競爭的平臺。
這就是2000年釋出的C#和.net平臺。Anders設計的C#也是優美的面向物件速度也經常快於Java。十幾年過去,C#依舊是網際網路開發的主力語言之一。
▲Logo版權:微軟
05
近年來開源軟體風起雲湧,PHP/Python/Ruby/Swift等熱度高升,年輕人都不記得Anders這個大叔了。結果在大家最意想不到的地方,大神再次亮劍。
JavaScript(JS)是網際網路使用最多的指令碼語言,而這個原本不該是Anders的強項,因為他是搞高大上的機器碼編譯器而不是低階的指令碼的。然而,Anders再次推出TypeScript震撼了程式圈。
TypeScript是編譯輸出JavaScript的工具,也是JS的超集。它不僅可以輸出客戶端的JS,還可以輸出服務端大熱的Node.js。TypeScript大大提高了程式員寫JS的效率和降低了差錯的機率。
更難能可貴的是,作為頂級Geek,Anders積極擁抱開源社群,推動微軟從封閉走向開放。TypeScript就是微軟最早的開源產品之一。納德拉上臺後,Anders更是促成Visual Studio免費的重要推手,這個開發套件了包括了C#和TypeScript。
06
在很多新興語言變得越來越臃腫複雜的當下,程式員們怎麼評價Anders的作品呢:有品味,優雅,簡潔。Anders說,這是因為他對程式設計充滿了熱情。
年近60的Anders今天仍舊在寫程式,他說一旦停止寫程式碼後,就會膨脹飛起來,忘了程式員真正需要什麼。我們現在還能看到他每個月在Github提交的程式碼。
▲github截圖
我自己在90年代用過Delphi,排第一肯定有偏心的成分。特以此文致敬我心目中最偉大的程式員:Anders Hejlsberg。
朋友會在“發現-看一看”看到你“在看”的內容