Webkit 相關小檔案

原本我以為免費 browser 盛行之後, Opera 就沒搞頭了. 想不到他們和 Google 聯手在今天四月推出了新的 web browser engine – blink, 放到了 Chrome 28 版和 Opera 15 版.

大家都知道 Google 有 Chrome browser 而 Android 用 Webkit 當預設的瀏覽器, 但他們原先其實都是 Webkit [1]. 而 Webkit 是 Apple 從 open source 的 KDE project 中分支出來的, 它借用了 KDE 的 KHTML engine 和KJS  Javascript engine. 由於 KDE 是 open source, 當然 Webkit 也必須是 open source, 只是 KHTML 發展成 WebCore, 而 KJS 變成 JavaScriptCore.

等到 Apple 熟悉了瀏覽器的技術, 就做出了 Safari, 並且聲其中牽涉到 OS 的技術, 所以不用 open source. Google 同樣是先加入 Webkit 計畫練兵, 並且在 2006 年另外開了一個 Chromium 的 open source project 另外發展一套瀏覽器 [2].

Google 在 Chromium 計畫的主要成果包括 V8 Javasceipt 引擎, sandbox, 黑名單, 與無痕瀏覽等等. 其中, V8 就曾經被放進 Android 4.0 的 Webkit 當中. 當然最好的東西都進了 Chrome browser. 最後 Google 的人開始嫌棄 Webkit [3], 並且打算在 Android 5.0 把它拔掉, 換成自家的 browser.

話說, Google 和 Apple 是 Webkit 這個 open source project 的最主要的 reviewer, 自己在管的計畫為什麼還嫌東嫌西呢? 其實 Chome  之於 Google 就像 Safari 之於 Apple, 自己有了獨到的心得之後, 難免就不想再和別人分享. 上次 Chromium 最傑出的成果是 V8 JavaScript engine, 而這次 Google 的突破點在於 HTML engine – blink. 看來內外功都已經練成了.

Chrome 的 blink 比 Webkit 的 WebCore 強在那裡呢? [ref 3] 首先說到 multi-process, Google 認為 Webkit 在這個情境下會拖慢速度, 而 blink 當然只要一眨眼. [Ref 4] 則大致介紹了 blink 在 multi-process 的設計概念. 這個可以單獨寫一篇, 初步的理解就是改了 data structure, 用空間換取時間.

那麼 Opera 又扮演什麼角色呢? 它最近宣布放棄開發瀏覽器 [3], 準備擁抱 Chrome. 這件事引起許多人在網路上討論. 原來這也不是因為 Opera 有什麼高瞻遠矚, 而是 Opera 的 Mobile OEM 業務已經被 Android 打掛, 萎縮到不值得經營了. 它在 2012Q4 的業績就比前一個年度下滑 89% [5].

相對地 Opera 在 device OEM 的部份還有成長, 只要把內核換成和 Android 一樣, STB 上的 Opera browser 將會和大家用的 Chrome 或 Safari 更加神似. Opera 廢掉自己的武功, 雖然可以省下研發的費用, 但也有人說 Opera 的企業精神已經喪失. Google 殺人於無形, Opera 投敵求生, IT 業真是可怕.

[REF]

1. Webkit

2. Chromium

3. Google Forks WebKit And Launches Blink, A New Rendering Engine That Will Soon Power Chrome And Chrome OS

4. Design Plans for Out-of-Process iframes

5. Opera放弃自家内核转投WebKit的背后

Adobe Flash vs. Nokia QT

手機的功能日益強大, 愈來愈像是一台攜帶式的小電腦, 雖然它的螢幕仍舊相當地迷你, 最多不過 4 吋多一點, 但是顧客對於繪圖能力的需求顯然與日俱增, 現在 VGA 的解析度已經不能算是高標準了.

如果要在手機上玩遊戲, 至少得支援 Java. 由於 Sun 公司自己不生產手機, 因此 Java 遊戲雖多, 還是要依賴底層軟硬體的支援. 若是想要在手機上種菜偷菜, 就得靠 flash 才行. 畢竟 flash 出道已久, 以前看的賤兔動畫就是用 flash 所畫的. 至於網路 flash 遊戲更是滿坑滿谷, 我女兒也花了不少時間在上面.

由於 Android 本身就支持 Flash Lite 的插件, 所以基於 Android 作業系統的手機就具備了更多的網路瀏覽優勢, 像是 HTC Hero.

Flash 的攜帶版本 (Flash Lite) 和 PC 版本的對照如下:

http://www.adobe.com/tw/products/flashlite/version/

Flash Lite 1.1 支持 Flash 4 的遊戲與動畫

Flash Lite 2.1 支持 Flash 7 或之前的遊戲,

Flash Lite 3  支持 Flash 8 或之前的遊戲、與 Youtube. 

如果看到 F9 字樣但什麼都撥不出來, 那是正常的. 因為 Flash Lite 不支援 Flash 9.

另一方面, Nokia 基於 Symbian 的 OS, 再加上他們在 2008 年 1 月所買的 QT, 同樣可以提供高階的應用軟體. 例如 Google Earth、Last.fm、與 Skype 等等. 在瀏覽器方面, 則是支援 Opera.

Opera 雖然網路瀏覽功能一把罩, 遇到 Youtube 這種 flash 軟體, 還是要加上 Flash Lite 的插件. 如果插件被拔掉, 只剩陽春版的 Opera 就遜色多了.

整理 Symbian 與 Android 不同的地方是, Android 本身就支援 Flash Lite 插件, 而 Symbian 是靠 Opera mobile 來外加此一插件. 如果使用 QT 的 Symbian 都要擁抱 flash, 那麼 flash 的前景看起來真是相當地不錯.

[ref]

http://www.javaeye.com/topic/250275

http://news.networkmagazine.com.tw/software-application/2009/03/06/11159/