向Brendan致敬-那段華麗的JavaScript歷史
Hail to the King, Baby! —— 那段牛x的JavaScript歷史
So it is with gratitude and more than a bit of relief, after a very long 16 years in full, 13 years open source, that I’m announcing the transfer of SpiderMonkey’s module ownershipto @dmandelin.
—— Brendan Eich
1995年,Brendan說服Netscape的老板說在netscape中需要一個屬于自己的腳本語言,在考察了Scheme和Java之后,10天之內,Brendan實現了JavaScript引擎的基本原型。從1995年到現在,經歷了瀏覽器大戰(zhàn),經歷了Mozilla開源項目的故事,16年之后的昨天,Brendan將SpiderMonkey的Module Ownership轉移給了Mozilla的Dave Mandelin。
為此,Brendan大神寫了這樣一篇博客——New JavaScript Engine Module Owner,給我們講述了那一段牛x的JavaScript歷史,里面充滿了睿智的小段子,非常有趣。
◆ 96年的時候,Brendan和chouck將JavaScript的運行放到了非主線程中,于是當網頁加載一段需要大量計算的JavaScript代碼時不會影響頁面中其他元素的渲染,至今大家也在Firefox可以看到“slow script running”的對話框;
◆ 快進到2008年,Firefox 3成功發(fā)布,Mozilla的JS團隊取得巨大的性能提升,當時主要競爭對手還是來自WebKit的JavaScriptCore引擎,之后又成功炮制TraceMonkey,——一個基于類型優(yōu)化的實時JIT引擎,是早于Chrome和V8的面世;
◆ 在2006年的時候,Brendan就接觸到了V8團隊,當時Brendan非常希望V8能夠開源,并且完全可以想辦法接入到Firefox中,甚至于替代Firefox的SpiderMonkey,而且當時Adobe正在考慮將Tamarin提交給Mozilla,用Brendan的話說就是多多益善,“the more the merrier”。當時正是JavaScript JIT前期探索階段;
◆ 直到2008年V8才正式開源,Google對此很謹慎,以防打草驚蛇的提醒到微軟。(配合這款引擎,Chrome應聲而出)很明顯,95年時候“Netscape + Java kills Windows”的說法激怒了微軟,最后什么結果大家也都知道了。不過歷史同樣重現,Chrome的刺激帶來了微軟的IE9和Chakra。
◆ V8長達兩年的絕密飛行“傷害”了JavaScript,意味著Apple和Mozilla需要自己探索陡峭的JS優(yōu)化之路,不過后來借助V8的開源,這個難度大大降低。不過隨著Mozilla放出TraceMonkey,Apple放出SquirrelFish,加上Chrome的V8,都向世人證明了JavaScript不再低效,不再是一個玩具語言,當然隨著AJAX的流行,JavaScript變的越來越流行。
◆ JavaScript的路依然漫長……
◆ TraceMonkey面世左右,Dave Mandelin加入了Mozilla。新的篇章開始。
◆ 新的JIT技術不斷出現,Mozilla將Webkit中的Method JIT融入SpiderMonkey,優(yōu)化別名JaegerMonkey;更多優(yōu)化全面的Benchmark出現,其實主要強調來自Mozilla的Kraken;
◆ 而V8也開始Phase II,Crankshaft面世,開始向類型優(yōu)化JIT的方向前進;
◆ 傳統(tǒng)的JavaScript GC方式也開始變革,Mozilla先提出來Compartment GC分配內存的方式;而以往粗暴需要Pause的Allocation模式開始向Incremental和Generational GC探索;
◆ IonMonkey是Mozilla的下一代優(yōu)化JIT引擎,會跟Crankshaft接近,更加優(yōu)化類型推演,還包括inline function等多種優(yōu)化手段
◆ 如Brendan所言,JavaScript的路還很漫長,不過充滿希望
◆ Dave在11年Velocity大會上的演講稿非常值得一看
J◆ avaScript歷久彌新,相信他擁有更美好的未來,而Brendan永遠是心中的JS大神。
Hail to the King!
原文鏈接:http://www.mijia.org/blog/?p=292
【編輯推薦】