close

《 轉載來源:ZDNet 》

ZDNet新聞專區:Stephen Shankland 2009/03/23 12:48:02

低調潛伏在網站程式碼中十幾年的JavaScript,現在竟成為網路瀏覽器二次大戰的主要戰場。

開發者用來製作從基本網站選單到線上試算表應用程式等各類功能的JavaScript,誕生於1990年代中期,當時微軟的IE挑戰領先的Netscape Navigator。IE贏了第一次的瀏覽器大戰,但現在面臨Navigator後裔—Mozilla Firefox的復仇,和包括Google Chrome、蘋果Safari和Opera等新興瀏覽器的挑戰。

所有挑戰者都以JavaScript表現為主要的攻擊武器,甚至為各自的JavaScript引擎命名:Chrome叫V8、Firefox的TraceMonkey、Opera有Futhark和即將推出的Carakan,而Safari新推出的Nitro,則是WebKit Squirrelfish的蘋果版。

僅管IE在JavaScript表現上落後對手,微軟其實非常在乎自家產品的整體表現,尤其是JavaScript表現。微軟在19日發佈了全新版本的瀏覽器,Internet Explorer 8。但顯然該公司對所謂的效能表現有很不同的看法。

IE總經理Dean Hachamovitch說:「我們會繼續讓指令引擎更快,(但)目前還不清楚有多少人是根據指令表現作選擇。JavaScript對網頁載入的速度,只有小部分影響。那是一部份,但絕不是最重要的部分。」

Hachamovitch表示,因為很容易計算,JavaScript表現就「成為瀏覽器效能的簡略表達方式」。微軟開始主打一段新的網頁載入速度測試影片,片中顯示IE 8的整體表現勝過Firefox 3.0.5和Chrome 1.0。

但或許不是巧合,Google在IE 8正式發佈的前一天,也推出自己的Chrome Experiments網站,主打其高效能的JavaScript引擎和推銷其瀏覽器。不過Chrome通常用aplomb執行網站的應用程式,與IE不同。

攻守兩陣營之間的差異可簡化如下:微軟是鎖定現在的網路,而對手們是放眼未來的網路。

網際網路正從一個靜態網頁構成的網絡,進化成一個同時包含可執行特定運算工作之應用程式,和供民眾互動的網絡。換句話說,瀏覽器除了載入頁面,現在還需處理資料。微軟的多數佔有率(Net Applications的統計為67%),反映的是較主流的世界,而挑戰者是針對他們認為的未來主流趨勢。Mozilla的Firefox經理Mike Beltzner說:「我們讓JavaScript更快,網路就能變成更有趣和互動性更高的地方。」

Chrome工程師Darin Fisher說:「我們看到很多網路開發者惋惜他們無法作出自己想要的東西,因為JavaScript是一項限制因素。」這當然不是唯一的瓶頸,但Google認為:「目前為止我們看到最大的效能機會,就是改進JavaScript。」

JavaScript加速Google是直接受益者。該公司極力推廣的雲端運算,就是用網路上的應用軟體取代在個人電腦上執行的傳統應用軟體。但除了 Google Docs、Google Calendar和Gmail之外,Yahoo、Facebook和無數其他網站,也都擴大使用JavaScript,甚至微軟都準備推出Office套裝軟體的線上版。

AdventNet旗下提供網路文字處理、試算表和其他功能的Zoho部門,也迫切需要更快的JavaScript。Zoho執行長Sridhar Vembu表示,目前該公司必須為IE 6使用者,單獨設立一個功能性較低的網站。對於新一代的瀏覽器,Venbu說:「我們樂觀其成,因為對我們這些應用軟體而言,這代表JavaScript 的表現和功能,有基本上的突破。我想在一年之內,我們會看到這類瀏覽器主導整個局勢。」

他對於微軟將努力縮小與對手的JavaScript差距也很樂觀:「我相信微軟會趕上。」

只強調JavaScript,似乎過於簡化目前網路應用軟體所面對的問題。(當然還有許多其他面向影響瀏覽器品質。包括安全防護、附加軟體可得性、作業系統支援、使用者介面反應度,和網站支援等。)隨著網路標準而來的新技術,如HTML 5和CSS 3,也有益於網路應用軟體。但JavaScript是將所有那些要素與網站結合,然後確實執行工作的程式語言。Beltzner說:「那些都是由 JavaScript中介,它確實是網路的主控結構。」

JavaScript並非一夕爆紅,它是在程式設計師發現如何利用它重建某些PC軟體的互動性到網路應用軟體的過程中,逐漸受到歡迎。以Yahoo郵件服務為例,使用者可以點選一則訊息,然後拖曳到某個資料夾裡。這種高階JavaScript技術通稱為Ajax。Beltzner說:「一、兩年前,大家開始接受比過去更仰賴JavaScript的新開發模式。我們已經到達一個網路開發者希望作到超出瀏覽器能力範圍的程度。」

2008年,JavaScript引擎躍居瀏覽器進化圈的焦點。去年6月WebKit先推出Squirrelfish,緊接著在9月又推出 Squirrelfish Extreme。Firefox去年8月發表 TraceMonkey,Google隨後在9月推出Chrome和V8。今年2月,Opera發表號稱超越上述所有引擎的Carakan,相隔一個月,蘋果公司也發佈JavaScript速度更快的Safari 4 beta版。

Beltzner說:「我想真正引燃戰火的是WebKit。有其他人一起競爭,讓我們質疑自己是否已經盡力作到最好。」而Chrome「的確是一個持續的壓力。」

微軟為自己的優先順序辯護,IE資深經理Amy Barzdukas說:「我們確實注意到其他瀏覽器在作什麼。瀏覽器製造者不能只是對最新技術敏感,還要在意民眾使用網路的狀況。」

對於那些有意構建更高階網路應用軟體的公司,微軟還有另一個答案:Silverlight軟體。上週三才發佈第三版的Silverlight,直接挑戰目前網路應用軟體和附加軟體較普遍使用的Adobe Flash。

目前JavaScript的發展軌道,似乎與使用微軟C#程式語言的Silverlight較有衝突,而Flash使用與JavaScript較相近的 ActionScript。為Chrome Experiments製作Ball Pool和Google Gravity兩種軟體的程式設計師Mr. Doob(網路化名)表示:「JavaScript在Chrome幾乎已達到Flash的速度。」

Mr. Doob(本身是Flash程式設計師,為了Chrome Experiments才去學JavaScript)受訪時表示,JavaScript大約有Flash三分之二的速度。但還有弱點,例如他發現 JavaScript開發者工具太過原始,此外,每一種瀏覽器的JavaScript都不一樣。

他說:「ActionScript的主要優點,是它在任何瀏覽器的任何版本看起來都一樣,甚至包括IE 6!JavaScript要看瀏覽器支援哪些功能,你必須多花一些時間確定你的計畫在所有瀏覽器都可以用,而不是實際開發計畫本身。」為了讓他的 Chrome軟體在其他瀏覽器執行,Doob說:「我必須解決一些會減緩表現和嚴重影響使用者經驗的麻煩問題。」

但通常,隨著程式編寫技術漸趨成熟,它們會歸於共同的標準,和更精確的工具。現在,效能表現是最高優先。至少要等到JavaScript夠快,其他問題才會浮上台面。Fisher說:「只要一點競爭,其他公司就會專注在這個問題上。」而到某個時刻,「這個問題突然間不是問題了,我們就可以前進到下一個議題。」(陳智文譯)

arrow
arrow
    全站熱搜

    深藍經典 發表在 痞客邦 留言(0) 人氣()