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年到现在,经历了浏览器大战,经历了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成功发布,Mozilla的JS团队取得巨大的性能提升,当时主要竞争对手还是来自WebKit的JavaScriptCore引擎,之后又成功炮制TraceMonkey,——一个基于类型优化的实时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优化之路,不过后来借助V8的开源,这个难度大大降低。不过随着Mozilla放出TraceMonkey,Apple放出SquirrelFish,加上Chrome的V8,都向世人证明了JavaScript不再低效,不再是一个玩具语言,当然随着AJAX的流行,JavaScript变的越来越流行。
◆ JavaScript的路依然漫长……
◆ TraceMonkey面世左右,Dave Mandelin加入了Mozilla。新的篇章开始。
◆ 新的JIT技术不断出现,Mozilla将Webkit中的Method JIT融入SpiderMonkey,优化别名JaegerMonkey;更多优化全面的Benchmark出现,其实主要强调来自Mozilla的Kraken;
◆ 而V8也开始Phase II,Crankshaft面世,开始向类型优化JIT的方向前进;
◆ 传统的JavaScript GC方式也开始变革,Mozilla先提出来Compartment GC分配内存的方式;而以往粗暴需要Pause的Allocation模式开始向Incremental和Generational GC探索;
◆ IonMonkey是Mozilla的下一代优化JIT引擎,会跟Crankshaft接近,更加优化类型推演,还包括inline function等多种优化手段
◆ 如Brendan所言,JavaScript的路还很漫长,不过充满希望
◆ Dave在11年Velocity大会上的演讲稿非常值得一看
J◆ avaScript历久弥新,相信他拥有更美好的未来,而Brendan永远是心中的JS大神。
Hail to the King!
原文链接:http://www.mijia.org/blog/?p=292
【编辑推荐】