JavaScript成浏览器战争主战场

JavaScript悄悄运行于网站内部10几年后,已经成为第二轮浏览器战争的一个主战场。

JavaScript诞生于1990年代中期,程序员用它可以做很多事情,从基本的网站菜单到网络表格程序。当时,微软IE浏览器正在挑战网景的Navigator。IE赢得了那场战争,不过,IE现在面临Moazilla的Firefox,Google的Chrome,苹果的Safari以及Opera浏览器的挑战。

所有IE挑战者们都在鼓吹其Javascript的性能,他们甚至为其浏览器中的Javascript引擎专门进行了命名:Chome叫V8,Firefox叫TraceMonkey,Opera的Futhark以及即将发布的Carakan,Safari刚刚才推出的Nitro。

尽管在JavaScript上落后于对手,微软却真正关注浏览器的整体性能,尤其是JavaScript的性能,不过,当微软最新的IE8浏览器出来时,我们发现,微软内部在JavaScript上存在巨大的观点分歧。

IE总经理Dean Hachamovitch说:“我们将让JavaScript引擎变得更快,不过现在还不清楚有多少人欢迎这种性能,JavaScript是决定页面渲染速度的一种因素。只是一种因素,不是灵丹妙药。”

Hachamovitch认为,由于JavaScript很容易测量,因此,它的性能已经成为浏览器性能的代名词。微软公布的页面载入测试中,IE8性能超越了Firefox 3.0.5和Chrome 1.0。

无独有偶,IE8出来前一天,Google开始宣传自己浏览器的性能,Google发布Chrome Experiments网站来展示其高性能Javascript给浏览器所带来的好处。

浏览vs运行程序

上述公司的区别在于:微软关注今日的网络,其它对手重视未来的网络。

互联网已经由一种静态网络变成了包含各种应用程序的页面。换句话说,浏览器现在必须既处理数据,又载入页面。微软是浏览器市场的主导者,其份额为67%,挑战者们正在将目光对准他们认为的未来主流。

Mozilla的Firefox主管Mike Beltzner说:“我们将JavaScript的速度变得越快,网络将会变得越有趣,越具有交互性。”

Google也认同这种观点,Chrome工程师Darin Fisher说:“由于Javascript的限制,许多Web程序员感到沮丧,他们没法实现自己的想法。这不是唯一的瓶颈,但Google还是认为,目前提高浏览器性能的最大机会还是在于提升Javascript的性能。”

让JavaScript变得更快,Google有直接的利益。Google是云计算的最大拥护者。

不过,Google Docs,Google Calendar和Gmail这些并不是仅有的云计算产品。Yahoo,Facebook等许多网站都在广泛使用JavaScript,微软自己也在开发网络版的Office。

对于Web程序来说,只强调Javascript有些简单化。Web程序还可以从新的Web标准技术中获益,比如HTML5,CSS3等。不过,Javascript提供了一种程序语言将所有这些Web元素融入网站,而不仅是显示一些东西。

一场竞赛

JavaScript竞争不仅过去存在,它已经逐渐在一些网络程序编程中流行开来。比如雅虎Mail,人们可以点击邮件,将其拖动到文件夹中。这种高端的Javascript技术叫做Ajax。

Beltzner说:“几年前,人们开始接受以JavaScript为中心的新的开发模式,程序员们希望让浏览器处理更多的东西。”

2008年,Javascript引擎逐渐成为浏览器领域的竞争焦点。6月,Webkit发布了SquirrelFish引擎,然后SquirrelFish Extreme也出现。Firefox8月发布了TraceMonkey,Google9月随Chrome发布了V8,Opera今年2月发布了Carakan,本月,苹果在Safari 4 beta中发布了Nitro引擎。

Beltzner说:“我认为,是WebKit 真正引发了这种竞争。”

微软有自己的考虑。IE高级主管Amy Barzdukas说:“我们肯定关注其它浏览器,不过,浏览器制造商们不仅应该关心尖端技术,而且还应该关心浏览器的用户。”

JavaScript vs Flash和Silverlight

对于Web程序开发,微软有自己的回答,这就是Silverlight软件,它的主要针对目标是Adobe的Flash。Silverlight使用的是微软C#,Flash使用的是ActionScript程序语言。

程序员Doob说:“Chrome中的JavaScript几乎与Flash程序相当。不过,一般来说,JavaScript的速度只有Flash的3/4,这是JavaScript的一个缺点。”不过,他说,JavaScript开发工具还显得原始,另外,不同的浏览器,JavaScript版本也存在不同。

他说:“ActionScript的主要好处是,它在任何浏览器,任何版本的浏览器中的表现都是一样的,而JavaScript就不同了,它得看浏览器支持哪些功能。”

一般来说,随着程序技术的成熟,JavaScript将形成标准,不过现在,性能才是重点。