地球程序員之神不是Linus Torvalds,而是他...
很多人認(rèn)為程序員應(yīng)該供的神里面排名第一的應(yīng)該是Linus Torvalds,因?yàn)樗荓inux和Git之父。
然而我要試圖反駁這個(gè)觀點(diǎn),因?yàn)榈厍蛏嫌辛硗庖晃粋ゴ蟮某绦騿T,有超過(guò)四代碼農(nóng)用他的開(kāi)發(fā)工具吃飯。
Linus只用C編程而且不到30年,而這位神級(jí)程序員在近40年中一直創(chuàng)造引領(lǐng)潮流的開(kāi)發(fā)工具(Turbo Pascal/Delphi/C#/TypeScript),他就是Anders Hejlsberg。
一
Anders并沒(méi)有大學(xué)文憑,但這絲毫不重要。當(dāng)年微軟Server部門(mén)負(fù)責(zé)人Bob Muglia認(rèn)為,地球上只有幾個(gè)人可以做出偉大的開(kāi)發(fā)工具架構(gòu),Anders還是其中那個(gè)最棒的,頂尖中的頂尖。
當(dāng)時(shí),Anders在微軟的競(jìng)爭(zhēng)對(duì)手Borland工作。微軟試圖挖了他一年,但都被婉拒。
比爾蓋茨打電話給Anders,說(shuō)我可以做什么才能讓你來(lái)。Anders后來(lái)回憶說(shuō),那是他人生特別尷尬的一個(gè)時(shí)刻。他已經(jīng)財(cái)務(wù)自由,只想做自己熱愛(ài)的事。
1996年,Anders和Borland高層有些意見(jiàn)分歧,微軟趁機(jī)開(kāi)出每年300萬(wàn)美元的高額待遇,更重要的是許諾他可以享有充分的協(xié)作資源,終于把這位英雄招至麾下。從后來(lái)的貢獻(xiàn)看,也許3000萬(wàn)請(qǐng)到Anders,也不會(huì)虧。
二
Anders是1960年出生在丹麥,父親是摩托羅拉的工程師,典型的科技家庭。Anders在上中學(xué)時(shí)就開(kāi)始編程,他回憶說(shuō)那時(shí)用的HP2100還是紙帶編程。上大學(xué)時(shí)有個(gè)高年級(jí)學(xué)生喜歡玩Mousehole紙牌游戲,但是老輸錢(qián)給Anders,覺(jué)得他很牛,就請(qǐng)他合伙一個(gè)小公司叫Polydata。
Anders有臺(tái)Z80,這電腦只有4Mhz CPU和32K內(nèi)存,上面有微軟Basic。結(jié)果Anders玩了一天就玩膩了,隨后開(kāi)始玩匯編。大神在20歲就顯露了神跡,他兩三個(gè)星期就寫(xiě)出了Pascal編譯器,并賣(mài)給了一個(gè)英國(guó)公司。然后大神就輟學(xué)了,并在多個(gè)平臺(tái)包括DOS上重寫(xiě)了Pascal編譯器。
1983年,當(dāng)時(shí)Borland還是個(gè)丹麥公司,自己做編譯器做得很爛,找到Anders買(mǎi)了他的編譯器并整合成Turbo Pascal。微軟CTO在一次節(jié)目中說(shuō),這應(yīng)該是PC上面第一個(gè)真正的集成開(kāi)發(fā)環(huán)境(IDE),但Anders很謙虛地說(shuō)他不知道。

(Turbo Pascal截圖,好喜歡這個(gè)begin...end)
當(dāng)時(shí)Anders并未加入Borland,因?yàn)锽orland后來(lái)搬到硅谷去了。Anders選擇遠(yuǎn)程服務(wù),因?yàn)楫?dāng)時(shí)并沒(méi)有互聯(lián)網(wǎng)也沒(méi)有email,當(dāng)時(shí)寄代碼都是靠聯(lián)邦快遞。
1989年,Anders自己的公司Polydata經(jīng)營(yíng)不太好,加上女友很向往去美國(guó),他就決定去美國(guó)加入Borland。
三
Borland當(dāng)然喜出望外,任命Anders為首席程序員。在Turbo Pascal成功后,Borland又發(fā)布了Turbo C,從而揚(yáng)名天下。中國(guó)第一代程序員好像都是用Turbo C的,包括偉大的王小波同志。
而Anders的主要任務(wù),是秘密開(kāi)發(fā)可視化環(huán)境的超級(jí)IDE:Delphi。當(dāng)時(shí)微軟已經(jīng)推出自己的Visual Basic大獲好評(píng),但一碰到直接編譯二進(jìn)制EXE的Delphi立刻被秒成渣渣。
Delphi使用Object Pascal,語(yǔ)言設(shè)計(jì)極其優(yōu)雅,完美面向?qū)ο?,完美結(jié)合數(shù)據(jù)庫(kù),而且可以直接操控操作系統(tǒng)(硬件和網(wǎng)絡(luò)等),應(yīng)該說(shuō)開(kāi)發(fā)Windows原生程序堪稱完美。有意思的是,Delphi上面的VCL和RTL庫(kù)都是用Delphi自己開(kāi)發(fā)自己的,自帶的源代碼可以讓程序員學(xué)習(xí)真正高手是怎么編程的。

Delphi 2截圖
當(dāng)年國(guó)內(nèi)大量著名程序都使用了Delphi,包括張小龍的Foxmail和雷軍的WPS。
后來(lái)著名的Borland C++也被直接移植架在Delphi上,這就是C++ Builder。
這時(shí)我似乎聽(tīng)到蓋茨在嘆息,我非得此人不可。
四、
Anders加入微軟時(shí),正是互聯(lián)網(wǎng)風(fēng)起云涌之時(shí)。Sun剛發(fā)布了跨平臺(tái)可以到處運(yùn)行的Java,微軟感覺(jué)生態(tài)受到嚴(yán)重威脅,抓緊開(kāi)發(fā)Visual J++和WFC,Anders成了主導(dǎo)人物。VJ++很快成為世界上最快的Java編譯器,并支持ActiveX等微軟生態(tài)產(chǎn)品。
Sun發(fā)現(xiàn)微軟不用自己的Java虛擬機(jī),搞出個(gè)更快的東西。他們深深憂慮被微軟分裂了Java,所以果斷起訴了微軟。結(jié)果微軟敗訴,被迫在VJ++頁(yè)面承認(rèn)和Sun Java不兼容,導(dǎo)致了VJ++的最終失敗。
Anders第一次碰到自己的產(chǎn)品不是因?yàn)樾阅軉?wèn)題而失敗,他承認(rèn)自己有點(diǎn)天真了。短暫沮喪之后立刻恢復(fù)了大神本色:我們微軟要自己搞一套和Java競(jìng)爭(zhēng)的平臺(tái)。
這就是2000年發(fā)布的C#和.net平臺(tái)。Anders設(shè)計(jì)的C#也是優(yōu)美的面向?qū)ο笏俣纫步?jīng)??煊贘ava。十幾年過(guò)去,C#依舊是互聯(lián)網(wǎng)開(kāi)發(fā)的主力語(yǔ)言之一。

Logo版權(quán):微軟
五
近年來(lái)開(kāi)源軟件風(fēng)起云涌,PHP/Python/Ruby/Swift等熱度高升,年輕人都不記得Anders這個(gè)大叔了。結(jié)果在大家最意想不到的地方,大神再次亮劍。
JavaScript(JS)是互聯(lián)網(wǎng)使用最多的腳本語(yǔ)言,而這個(gè)原本不該是Anders的強(qiáng)項(xiàng),因?yàn)樗歉愀叽笊系臋C(jī)器碼編譯器而不是低級(jí)的腳本的。然而,Anders再次推出TypeScript震撼了程序圈。
TypeScript是編譯輸出JavaScript的工具,也是JS的超集。它不僅可以輸出客戶端的JS,還可以輸出服務(wù)端大熱的Node.js。TypeScript大大提高了程序員寫(xiě)JS的效率和降低了差錯(cuò)的概率。
更難能可貴的是,作為頂級(jí)Geek,Anders積極擁抱開(kāi)源社區(qū),推動(dòng)微軟從封閉走向開(kāi)放。TypeScript就是微軟最早的開(kāi)源產(chǎn)品之一。納德拉上臺(tái)后,Anders更是促成Visual Studio免費(fèi)的重要推手,這個(gè)開(kāi)發(fā)套件了包括了C#和TypeScript。
六
在很多新興語(yǔ)言變得越來(lái)越臃腫復(fù)雜的當(dāng)下,程序員們?cè)趺丛u(píng)價(jià)Anders的作品呢:有品味,優(yōu)雅,簡(jiǎn)潔。Anders說(shuō),這是因?yàn)樗麑?duì)編程充滿了熱情。
年近60的Anders今天仍舊在寫(xiě)程序,他說(shuō)一旦停止寫(xiě)代碼后,就會(huì)膨脹飛起來(lái),忘了程序員真正需要什么。我們現(xiàn)在還能看到他每個(gè)月在Github提交的代碼。

(github 截圖)
我自己在90年代用過(guò)Delphi,排第一肯定有偏心的成分。特以此文致敬我心目中最偉大的程序員:Anders Hejlsberg。
推薦:

