為什么 Mozilla 要固守 Gecko 內核(上)

隨著 Google 推出 WebKit 內核的 Chrome 瀏覽器,一些技術狂熱分子開始盤算 Mozilla 的 Gecko 內核是否即將走到盡頭。然而盡管 WebKit 日漸流行,那些熟悉 WebKit 與 Gecko 的差異,并對 Gecko 大加贊賞的人還是認為,Mozilla 在未來版本的 Firefox 中使用 WebKit 內核的可能性尚無從談起。

Webkit 的優勢

Webkit 是一個開源的HTML 渲染引擎,由蘋果公司基于 KDE 的 KHTML 項目開發而成。我們從 Chrome 的評測中已經看Webkit 是一個非常輕量的渲染引擎,因其緊湊干凈的代碼基礎,出色的標準支持,以及很小的內存占用而備受贊譽。這些品質使得 Webkit 成為眾多瀏覽器的熱選內核。

Webkit 主要用于蘋果的 Safari 瀏覽器與 iPhone,但一些重要的廠商如 Adobe,Nokia, Trolltech 也使用這個核心。Webkit 的用戶中還包括一些不太知名的瀏覽器,包括  iCab, Omniweb, Shiira, 以及 Epiphany。在一些二線操作系統,如  Haiku, Syllable, 甚至 Amiga,Webkit 也大行其道。越來越多的開發者,使用 Webkit 開發富 Internte 應用(rich Internet applications)。Google 在對眾多內核進行評估之后,為 Android 移動瀏覽器,以及 Chrome 桌面瀏覽器選擇了 WebKit。

開發者對 Webkit 公認的評價是:這是一個非常出色的渲染引擎,可以用于眾多場合,它的吸引力讓很多開發者開始懷疑 Mozilla 的 Gecko 內核是否還有市場。

 

蘋果為什么抵制 Gecko

 

Gecko 源自 Netscape,并早于 KHTML,Gecko 因龐大與復雜的代碼基礎而頻遭詬病。Gecko 非常強大,但代價高昂,復雜,高內存占用。因此,在很多場合 Gecko 的眾多功能反而成了負擔。

Gecko 內核過于復雜的原因是 Gecko 意圖提供除了 HTML 渲染之外的更多功能。Mozilla 早期的野心很大,Mozilla 最早的應用套件包括瀏覽器,郵件和新聞組程序,Web 設計工具,IRC 聊天工具。除了渲染 HTML,Gecko 還要提供一種應用廣泛的,基于 XML 的用戶界面生成引擎,XUL。XUL 被用在所有這些程序中。XUL 現在仍用在 Firefox 中,用來生成用戶界面,因此造就了 Firefox 最有價值的重多擴展應用。

Gecko 過于復雜的另外一個原因是 XPCOM,一個強大的組件系統。雖然 XPCOM 為 Gecko 帶來很多激動人心的功能,讓這個渲染引擎實現組件化,然而,這個功能被一些開發者濫用,當 Ars Technica 2004年采訪 Mozilla 開發者 Scott Collins 的時候,Scott Collins 說,對 XPCOM 的濫用是 Mozilla 犯的幾個主要錯誤之一。

鑒于 XUL 和 XPCOM 所帶來的復雜性,蘋果自然要考慮為 Safari 選擇一種更輕量的內核。蘋果要設計一款可以和 Mac 操作系統緊密結合的瀏覽器,他們還預見到,這個引擎應該支持移動設備,他們因此認識到 KHTML 比 Gecko 更合適。

2003年,當蘋果決定在 Safari 中使用 KHTML 的時候,Mozilla 的 Mike Shaver 曾在博客中承認 Gecko 的缺點。他同時預言,蘋果會成為他們推廣 Web 標準的聯盟。他寫道,

“小而精練曾是我們的苦苦追尋的目標,Gecko 的龐大與臃腫在各種評測中拉了我們的分數,如果我不得不寫一個新瀏覽器,我會考慮 Mozilla 之外的選擇。我希望 Mozilla 向 Safari/KHTML 學習,因為它們用 1/10 的代碼實現了非常棒的功能。”

 

Gecko 洗心革面帶來 Firefox 3 的火爆

2003年以來,發生了很多變化。Gecko 代碼基礎已經發展了很久,Gecko 依然復雜,然而它的很多歷史遺留的缺陷正被一一攻破,Gecko 為 Firefox 3 帶來眾多革新,為整個 Web 瀏覽體驗帶來非常顯著的改善。

Gecko 1.9 使用跨平臺的 Cairo 渲染框架,對 SVG 的巨大改進簡化了代碼并引入一些非常 Cool 的功能,如全頁縮放,同時,重構的 reflow 算法,讓 Gecko 通過 Acid 2 測試成為可能。Mozilla 還非常顯著地降低了對內存的占用,甚至超越了 Safari 和 Opera。

對 XPCOM 的使用被大大減少,XPCOM 對資源的占用通過一個新的循環回收器得到減低。這個工作仍在繼續,Mozilla 將在 Firefox 4 中進一步減低 XPCOM 的負擔。Gecko 的其它缺陷也在新的開發中被一一正視,比如,Firefox 3.1 的 Alpha 版中就已經加入對 CSS 3 的支持,另外一些性能的改進會讓 Gecko 更具競爭性。Mozilla 的 TraceMonkey 引擎將可能包含在 Firefox 3.1 中,這將顯著地提高 JavaScript 性能

從技術的角度,Gecko 現在非常穩固,絲毫不比 Webkit 差。一些證據顯示,Gecko 正在進軍移動領域,這在不久前還是不可能的事。Mozilla 擁有資源,開發經驗以及社區支持,這將引導 Gecko 進入任何 Webkit 所能進入的地盤。

未完待續

本文國際來源:http://arstechnica.com/articles/paedia/mozilla-committed-to-gecko.ars/1
中文翻譯來源:COMSHARP CMS 官方網站





評論
...
發表評論


用戶


評論(不超過1000字)


 2 + 4 = ? 請將左邊的算術題的結果填寫到左邊的輸入框  


  發送給朋友| 打印友好
7 x 12 小時服務熱線
0532 - 83669660
微信: comsharp
QQ: 13885509
QQ: 592748664
Skype: comsharp