“從前”有一門編程語言叫Smalltalk,它是世界上第一個純粹的面向?qū)ο缶幊陶Z言。
Smalltalk有很多忠實擁躉,在Java崛起之前,它獨自可以抗衡C++。
著名的《設(shè)計模式》一書,其中的代碼示例就是C++和Smalltalk。
但是Smalltalk運行速度太慢(尤其是是計算密集型任務(wù)),比C語言慢很多,并且很吃內(nèi)存。
Smalltalk還是動態(tài)語言,對于a+b這樣的操作,不到運行時,不知道是整數(shù)還是字符串。此外,動態(tài)類型雖然極端靈活,但對于大規(guī)模軟件開發(fā)來說,并不十分友好。
1
90年代中期,一個豪華的創(chuàng)業(yè)團隊秘密組建,開發(fā)了一個叫做Strongtalk的語言。
Strongtalk保留基本的 Smalltalk-80 語法和語義的同時,增加了類型系統(tǒng),并且極大地提升了性能。
優(yōu)雅的語法 + 強悍的性能,Strongtalk有可能一飛沖天。
就在Strongtalk發(fā)布之前,力推Java的Sun公司注意到了它,立刻將其收購,把它扼殺在了搖籃之中。
這個團隊轉(zhuǎn)而去開發(fā) Java虛擬機,不久便推出了HotSpot,讓Java擺脫了運行速度慢的惡名。
這個豪華團隊的人員包括:
Gilad Bracha:他是Java語言規(guī)范合著者,也是Java虛擬機規(guī)范的主要貢獻者,他最早提出Gradual typing,可以給動態(tài)語言增加靜態(tài)類型,后來被PHP、Python、Typescript采用。
Urs H?lzle:他提出的類型反饋技術(shù)讓虛擬機有了巨大的性能提升,后來成為谷歌的第八位員工和第一位工程副總裁,塑造了谷歌的大部分開發(fā)流程和基礎(chǔ)設(shè)施,他領(lǐng)導(dǎo)了谷歌高效數(shù)據(jù)中心的設(shè)計,據(jù)說這些數(shù)據(jù)中心的耗電量不到傳統(tǒng)數(shù)據(jù)中心的一半。
Lars Bak :虛擬機的巫師,也是我們今天的主人公。
2
Lars Bak是個丹麥人,1988年在丹麥奧胡斯大學(xué)獲得計算機碩士,對設(shè)計和實現(xiàn)虛擬機有濃厚興趣。
Lars Bak 1991年加入了Sun公司的Self語言小組,開發(fā)Self虛擬機,Self語言雖然不流行,但是它開創(chuàng)的即時編譯技術(shù)卻極大地影響了后來的虛擬機。
1994年,Lars Bak加入豪華創(chuàng)業(yè)團隊,主刀開發(fā)Strongtalk,被Sun收購以后,他成為Sun Java 軟件部門HotSpot團隊的工程經(jīng)理和技術(shù)主管,開發(fā)了高性能Java 虛擬機。
2002年,在事業(yè)上正值巔峰的Lars Bak卻“逃離”了美國,回到了家鄉(xiāng)丹麥奧胡斯,原因很簡單:
1. 他想讓女兒上丹麥語學(xué)校
2. 他也想要一個更健康的生活方式---美國的開發(fā)工作太緊張了。
在奧胡斯經(jīng)歷了一個玩票似的創(chuàng)業(yè)以后,Lars Bak徹底閑了下來,閑到了計劃花一年的時間去粉刷他的農(nóng)場!
這時候遠在美國的Google正在密謀開發(fā)一個全新的瀏覽器Chrome,這個瀏覽器要支撐起Google的野心:在Web上運行復(fù)雜的應(yīng)用程序,讓自己的網(wǎng)絡(luò)服務(wù)觸及到全世界的每個角落。
想在瀏覽器中運行復(fù)雜應(yīng)用程序,高性能地執(zhí)行JavaScript則是核心關(guān)鍵。
于是Google想到了虛擬機大神Lars Bak,一個遠洋電話打過來,請他出山開發(fā)JavaScript引擎。
Google的辦公環(huán)境可是遠近聞名,美食、游樂場、健身房......應(yīng)有盡有,但是Lars Bak根本不感冒,他要求在8000公里外,跨越9個時區(qū)遠程辦公,并且不當經(jīng)理,自己干。
為了把天才招致麾下,Google答應(yīng)了Lars Bak的要求。
從此Lars Bak就開始了遠程辦公的生涯,在丹麥生活,為Google工作,工作和生活保持了完美的平衡。
隨著JS引擎項目的進展,不斷有人加入Lars Bak這個團隊,他家里坐不下了,不得不把辦公室搬到奧胡斯的一個大學(xué)中。
所有人都騎著自行車上班,下午5點就下班,和Google總部主要通過電子郵件聯(lián)系,偶爾開電話會議。
經(jīng)過4年的開發(fā),JavaScript引擎V8 和Chrome 瀏覽器一起問世,引發(fā)了巨大轟動。
早期的V8直接把JavaScript代碼編譯成CPU可以直接執(zhí)行的機器碼, 在測試中,V8處理JavaScript的速度比最常見的IE瀏覽器要快56倍,從此JavaScript甩掉了只能在瀏覽器中執(zhí)行簡單代碼的惡名,變得可以運行大型程序了。
Lars Bak開發(fā)V8原本主要作為瀏覽器的JS引擎,讓人沒想到的是,Ryan Dahl創(chuàng)新性地利用V8引擎,發(fā)明了Node.js,讓JavaScript跳出了瀏覽器的束縛,開始向服務(wù)器端和客戶端進軍,JavaScript突然間爆火。
隨后幾年,Lars Bak和團隊持續(xù)改善V8, 但是JavaScript已經(jīng)被壓榨干凈,JavaScript有著難以克服的缺陷,于是他們干脆另起爐灶,推出了一門新的語言Dart。
Dart野心很大,最初是開發(fā)Web程序,后來擴展到移動應(yīng)用,服務(wù)器端應(yīng)用,客戶端應(yīng)用,但是一門語言的成功依賴很多因素,尤其是生態(tài)系統(tǒng),強如Lars Bak也不一定能保證Dart的成功,Dart未來如何,還得繼續(xù)觀察。
3
Lars Bak一輩子都在開發(fā)虛擬機:Beta、 Self、 StrongTalk、 Java HotSpot、 V8 、 Dart VM..... 稱他為虛擬機之神,一點兒也不為過。
在虛擬機方面,他發(fā)明了18項專利,其中有一個著名的專利就是“把函數(shù)的部分字節(jié)碼編譯成機器碼來混合執(zhí)行”,是他在Sun開發(fā)HotSpot時發(fā)明的, 在虛擬機領(lǐng)域,這是個相當基礎(chǔ)的專利。
當Oracle買下Sun以后,就揮舞著這個專利大棒,對Google發(fā)起了訴訟。
Lars Bak為人極為低調(diào),他開發(fā)了這么多偉大的產(chǎn)品,但一直默默呆在奧胡斯,在丹麥,有另外一個Lars Bak更加知名,那是一位職業(yè)自行車選手。
但是很明顯,計算機界的Lars Bak才是對世界影響更為深遠的人。
全文完,覺得不錯的話點個贊或者在看吧!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.