2013年4月9日 星期二

網路開始「閃爍(Blink)」

原文網址:http://blog.oio.de/2013/04/05/the-web-starts-to-blink-chrome-drops-webkit-as-its-rendering-engine-announces-blink/

副標題:Chrome 捨棄 WebKit,改用 Blink 作為 rendering engine。

感謝 LPH66 與 chingfen 校正 Chrome 語源


最近 WebKit 可能變成新一代 IE6 (在偉大的 browser 戰爭前,大多數網頁開發人員只為了相容 IE6 所作的最佳化與測試) 的說法逐漸成型。

事實是,這些問題不會成真, 直到世界上最常使用的 browser(StatCounter 2013 年 3 月數據Google Chrome 不採用 WebKit 作為 rendering engine。 實際上 Google 是 folk WebKit、捨棄主要是 Apple 主導的共用 codebase。 新的 rendering engine 會取名為 Blink

據 Google 所述,跟其他 browser 共用 codebase 減慢了開發速度、 也阻礙了創新。

現在這個時間點,如果不需要為不同架構共用相同的 codebase, 我們覺得每個人都可以發展的更快。 —— Linus Upson(Google VP Engineering)

Opera 最近才宣佈轉換成 WebKit, 將會轉換到 Blink 上。 Opera 的開發人員會對 Blink 做出實質貢獻。 看起來他們跟 Google 組成策略聯盟了。

任務內容與可能的改進方向

Google 想要把 Blink 的 rendering engine 架構徹底改變。

計畫中的改變包括:

  • 不再有供應商 prefix,實驗性的功能改用 browser 的設定。 Firefox 已經這樣子運作相當長一段時間。

  • 加快 rendering 效能,就像 Google 在 V8 上改善 JavaScript 執行速度一樣。

  • iFrame 不用 process 處理:將頁面分割到 sandbox process。

  • 簡化並加快網路方面的程式碼(某些 Mac 規格阻礙了這方面的改進)。

  • 將 DOM 移進 JavaScript 中,可以加快 DOM 操作。 這對現代、會使用大量 DOM 操作的 web application (例如用 GWT 建立的 application) 會是一大進步。

  • 在平行處理上善加利用多核心的 CPU。

  • 提高 browser 的安全性:加強 compositor thread 以及 iFrame 的 sandbox 安全性。

  • 重構 codebase,捨棄約 450 萬行程式碼。

  • 將開發與 roadmap 透明化:參見 Chromium Feature Dashboard

為甚麼叫做 Blink?

根據 Linus Upson 所說:

要嘲諷最糟糕的 HTML tag 設計,所以我們選了 Blink, 因為它符合我們愛用命名諷刺的調調。 我們把 browser 取名 Chrome 的主要想法是盡量減少邊框。 (譯註:參見 chrome 的語源 [wiktionary] 與 [wikipedia]) 我們叫我們的電腦 Pixel 因為我們嘗試讓所有 pixel 消失。 現在我們把 rendering engine 取名叫 Blink, 因為它不再支援 blink tag。

許多 web 界的老前輩看到這個名字可能會開始科科。

這對 web 的未來的意義是?

恕我直言,Google 如果不確定如何做到的話, 他們不會承諾可以大幅度改善效能。 所以我們可以期待 Chrome browser 會比競爭對手快。 其他 browser 供應商也會面臨這個挑戰、補強他們的 rendering engine。 所以 browser 的 rendering 速度會普遍提昇。

對於桌機與行動裝置上 Safari 的影響目前還不清楚; Safari 已經使用 WebKit 2 而 Chrome 還在用 WebKit 1。 不過有一部分程式碼是跟 Chrome 共用的, 這表示 HTML5 與 CSS3 的支援度將會減緩。 也許 Apple 會開始投入更多資源在 WebKit 上,讓它保持競爭力。

rendering engine 壟斷危機已經沒了。 對開發人員來說,這表示需要測試另一個 rendering engine 的相容性。 不過如果 browser 依照公開的標準與規格開發, 這個問題將不會像過去一樣嚴重。

歡迎 Blink 加入戰場!

沒有留言:

張貼留言