いろいろなブラウザの拡張機能の開発しやすさを比較してみた

ということで、主要3ブラウザの拡張機能の開発しやすさを比較してみたいと思います。
ここでは、FirefoxChromeOperaについて。

FirefoxChromeOpera
ユーザー数
開発言語Jetpack or XUL or GMJS+HTML+CSS or GMJS+HTML+CSS
公開方法Add-ons for FirefoxChrome webstore*1Opera Extensions

大体こんな感じです。次はブラウザごとにもう少し詳しく見ていきましょう。

Firefox
最近Jetpackという、新しい拡張機能の開発方法が登場しました。
今までは難解なXUL*2を使って開発する必要がありましたが、Jetpackではその必要がなく、UI部分の実装がとても簡単になりました。
Jetpackはまだ出始めということもあり、APIの仕様が定まっていなかったり、出来ないor実装が難しい部分も多くありますが、今後期待できる開発方法です。
対してXULは、Firefox 4以前に使用されていたユーザーインタフェース言語です。Jetpackでは実装できない細かいUIが指定できること、設定画面の実装が容易なのが特徴です。もちろんFirefox 4でもXULはサポートしていますが、Jetpackが安定してくれば魅力は薄れるでしょう。
拡張機能の形式は、XULJetpackともに.xpiです。XULで開発する場合、必要なファイルの入ったフォルダをまとめてzip圧縮、拡張子をxpiに変更することで作成できます。*3Jetpackの場合、「cfx xpi」というコマンドで作成できます。
拡張機能を変更した場合、XULの場合はFirefoxの再起動、Jetpackの場合は「cfx run」で変更が反映されます。

Chrome
おそらく、拡張機能の開発が最も容易なブラウザだと思われます。
UIもマニフェストファイルに記述するだけで済み、他の拡張との変数の衝突などもすべて自動で回避してくれます。
また、設定画面の製作が簡単で、拡張機能の変更の反映も「再読み込み」をクリックするだけです。
ただ、ポップアップの挙動が不安定です。『バージョンによっては』document.location = "…"; でのページ遷移が認められていません。
拡張機能の形式は、.crxです。「拡張機能のパッケージ化」から簡単に作成できます。
ただし、Chrome webstoreに掲載する場合は、初回に$5をGoogle Checkout経由で支払う必要があります。(今までに一つでも公開したことがある人は除く)
自由度はFirefoxほど高くありませんが、ブラウザ拡張を開発したいだけならChromeがおすすめです。

Opera
最近アドオン機能が実装されたこともあり、よく分からない仕様となっています。
ためしに開発してみましたが、「あってるはずなのに動かない…」が多くて投げてしまいましたw
変更は、アドオンのアンインストール→再インストールで反映されます。
拡張機能の形式は、.oexです。必要なファイルの入ったフォルダをまとめてzip圧縮、拡張子をoexに変更することで作成できます。

●まとめ
自由度の高いFirefox、お手軽なChrome、今後に期待のOpera
ちなみにSafariはDeveloper登録が面倒で手を出していませんw

相変わらず読みづらい日本語で申し訳ないです。こればっかりは…。
あ、間違ってるところあると思うので、もし見つけたらコメント欄からツッコんでください。出来る限り早く修正します。
コメントとかはてブとかスターとかもらえると雄叫びをあげながら喜ぶと思います。

*1:初回公開時に$5が必要

*2:イメージとしてはMozillaXML

*3:こちらは簡易的な方法です。