[WHY] 為什麼外掛那麼那麼少…

你好奇嗎?為什麼比起 Maxthon 2的時代
Maxthon 3的外掛少得…
當然,撇除 Maxthon少了強大的社群支援外
官方目前也沒有特別一組全權負責開發外掛的團隊
因此外掛的數量與功能只能牛步往前
不過!今天當然不是來討論這個的,今天的主題和技術面有點小關係…
來看看 Maxthon 3除了以上的原因外
還有什麼原因使得外掛的產量少呢?

會誕生這篇文章的原因,剛好是看了 Mozilla社群的一篇文章後,決定與大家分享的
此文章也將附註於本文頁尾

正文開始

假設你同時安裝了 Maxthon、Google Chrome以及 Mozilla Firefox三款瀏覽器
且三款瀏覽器都安裝了各自的附加元件(或稱擴充套件、外掛… etc.)
論啟動速度來說 Firefox理論上就是會稍微受到附加元件一些影響
為什麼呢?
這是由於 Firefox的擴充套件平台和其他兩款瀏覽器有些許不同的原因

Firefox 的擴充套件平台幾乎無所不能,將「自訂與多功能」發揮到極限程度
整個 Firefox是透過 XUL (XML User Interface Language) 的架構來製作的
這種語言是屬於未編譯程式碼,當要執行時才會編譯並執行結果出來
因此比起 Maxthon和 Chrome這兩種已經編譯好的程式
速度就會比較慢

就是由於 Firefox的這種特性,擴充套件能夠隨時動態控制 Firefox,想得到的功能幾乎都可以透過擴充套件進行實現

但是當 Firefox有重大的更新時,擴充套件控制的部份若有變更,就會導致擴充套件失效
也就是為什麼每當 Firefox版本更新後,使用者會哀鴻遍野,面對著一堆擴充套件不能再用,必須等待更新的原因
擴充套件的作者,必須應付每次升級後一起升級的麻煩事

且由於擴充套件都能夠控制整個 Firefox,擴充套件間互相的衝突也是很可能會發生的。

那… Maxthon 和 Chrome呢?

Maxthon 和 Chrome的附加元件平台基本上是差不多的
都是透過一套「API (Application Programming Interface)」
也就是俗稱的接口、端口,讓附加元件利用

使用 API的好處是,除非 API變更
不然不用隨著瀏覽器主體的更新而追著版本跑
且能夠對 API進行管理

那缺點就是
附加元件能做到的事,被控制在 API所提供的範圍內了
API 提供的越少,相對附加元件的功能與數量也就少

Maxthon目前的狀況就是是開放的 API 數量不多且開發附加元件的人少
所以才會造成目前的狀況發生

Chrome則是有著 Google較多的 API、眾多的自家服務當後盾以及廣大的使用者,應用上也就多很多 (有開放原始碼專案也是原因)

為了彌補速度,Firefox 目前也已經啟動 Jetpack計畫,也提供 API給開發人員使用,使用 Jetpack API的擴充元件,未來也就不用再追趕著 Firefox越來越快的更新速度了,也不會再拖累到 Firefox的速度

最後回歸 Maxthon…
Maxthon 的附加元件平台 API也仍然再持續開發與開放
只要能夠有對程式開發的開發人員加入
也還是能夠創造許多不同功能的附加元件

有什麼想法嗎?歡迎一起來討論一下

相關閱讀:Firefox的擴充套件平台討論

發表迴響