(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
-
Upload
taro-matsuzawa -
Category
Technology
-
view
7.266 -
download
5
description
Transcript of (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
株式会社KBMJ ITC部松澤太郎 aka. btm (id:smellman)
http://d.hatena.ne.jp/smellman/
注意書き
内容は「だいたいあってる」程度
記述内容はわりと適当
今日の1時から5時までかけて作成した程度
しゃべりがメイン
自己紹介
あだ名いろいろ
btm, smellman, 組長, くみちょ, たろーちゃん etc...
10進数で29歳になりました←new!
趣味は音楽(breakcore)、ラノベ、ゲーム
最近二次元でいいよとか言い出してる
OSS的にLinux歴12年(高校3年から)
なお、コンピュータ歴13年
パソコンを買う前からLinuxに興味を持つ
Ruby on Railsで書かれたOSS ECパッケージ「エレコマ」のメイン開発者
http://ec.kbmj.com/
エンジニア的に勉強した/使ってた言語
Java, Tcl/Tk, アセンブラ, C, Scheme, XML, XSLT,
XUL, Javascript, Forth, Eiffel, Smalltalk, Visual Basic, Python, Perl, PHP, Delphi, Ruby
サーバ周りもいろいろ
Linux, Apache, Tomcat, JRun, Coldfusion, Jetty, Active Directory....
Mozilla的な略歴(1)
1999年(大学1年)
Mozilla M3 (Millstone 3)をダウンロードして初めてビルド。
2000年(大学2年)
mozilla.party.jp 1.0に参加初めてのBugzillaを翻訳
2001年(大学3年)
XULアプリケーションのパッケージ化など
Mozilla的な略歴(2)
2002年(大学3年)
mozilla.party.jp 3.0 スタッフ参加もじら組スタッフ入り
2003年(大学4年)
もじら組組長へ
2004年(社会人1年)
mozilla.party.jp 5.0 スピーカーFirefox 1.0リリース前テスト
Mozilla的な略歴(3)
2005年(社会人2年)
C Magazine 執筆
2006年(社会人3年)
XULRunnerをいじりはじめる
2007年(社会人4年)
Software Design 執筆fx devconスピーカー
Mozilla的な略歴(4)
2008年(社会人5年)
Firefox 3 Hacks 執筆
2009年(社会人6年)
Software Design 執筆と連載もじら組脱退
2010年(社会人7年)
Software Design 連載終了イマココ!
はじまりのはなし
Mozillaとは?
Mozillaの名前の由来は”Mosaic”を倒す”Gozilla”から
Mosaicがイリノイ大学に権利を取られて開発者が独立してできたのがNetscape
Mozillaの名前はその頃からあるコードネーム
Netscape aka. Mozilla
Netscape NavigatorのREADMEには、”n-e-t-
s-c-a-p-e”と書いて”Mozilla”と読むという文章がある
ブラウザ戦争
Netscape社 VS Microsoft社の血みどろの戦い
Internet Explorerは奇しくもMosaicのコードを書いとって作られたもの
因縁の対決はNetscape社の惨敗へ
さすがにOS付属は強かった
Netscapeと伽藍とバザール
1998年、Netscape社がNetscape Navigator 5のコードを全て公開すると発表
Eric Raymondの「伽藍とバザール」などの論文からヒントを得る
オープンソースとNetscape
ソース公開
世界中からダメ出しをくらう
完成度がよくない
そもそもNGLayoutでよくね?
結局Netscape 5はリリースされず
プラットフォーム問題
NetscapeはWindows, Mac OS, Unixに対応
Windows は Windows API
Mac OS は Carbon
Unix は Motif
OSごとに実装が違うのは面倒
設計の変更
クラスプラットフォーム展開をサポートするためにGUIの設計やAPI群は共通化しておく必要がある
多少のレスポンスは犠牲にしてでも互換レイヤーを作成
多くの技術が初期から実装
XUL
XML based Userinterface Language
GUIをXMLで書くという手法
一つの記述で全てのOSをサポートする
XPCOM
Cross Platform Component Object Model
いわゆるCOMの一つ
インターフェイスを解してC++などで実装されたコードにアクセスをする
インターフェイスが共通なのでOSごとに低レベルレイヤーへのアクセスコードを変える事がない
XPConnect
JavascriptからXPCOMを呼び出す仕組み
Javascriptから低レイヤーの実装が叩けるようになる
モダン開発
GUIはXMLへ、GUIを制御するコードはJavascriptへ
コア開発とGUI開発が分離
リッチインターフェイス開発が進む
そんなに世の中甘くない
初期の頃はレンタリングエンジンが遅かった
Geckoの性能がそのままGUIの性能へ影響
テーブルの処理ですら遅い
GUIもまだ洗練されていない
Netscape 6.0 リリース
世界中から酷評を食らったリリース
Mozilla M18ベース
安定とは程遠い
ソフトとして重過ぎる
というかなぜリリースしたのかよくわからない
Gecko
Mozilla 0.8ぐらいから徐々によくなっていく
テーブルレンタリングの改善(0.9?)
Mozilla 1.0はかなりまとも
marquee問題
1.0ブランチに突如marqueeサポートが入る
中国ではmarqueeを使ったサイトが95%ぐらい占めていたため、中国市場を狙ってNetscapeとRedhat
がゴリ押し。
コミュニティから反発があっても受け入れられず
Mozilla 1.0ぐらいまで
コミュニティとNetscapeがたびたび衝突
AOLの資本になったNetscapeが企業色をたびたび出してきていた
marquee問題など政治レイヤーがわりと多かった
Firefox誕生
Mozillaの問題点複雑すぎるGUI
無駄にメニューが多い
ブラウザ、メーラ、IRCクライアントなどが入っているため、GUIだけで多くのファイルが存在
ブラウザ単体にしてGUIをリファクタリングするという発想からFirefoxの原型が生まれる
Mozilla Phoenix
ちゃんと名前がついた初めてのリリース
その前はとってつけた名前で開発版がこっそり公開されていた
Phoenix社の訴えで名称変更を余儀なくされる
Phoenix社はBIOSで有名なメーカー
Mozilla Firebird
Phoenixから名称を変更して再始動...だったのに
FirebirdというOSSのリレーショナルデータベースが存在
もちろん、怒られました
再度名称変更へ...
Mozilla Firefox
これ以上怒られないためにちゃんと使われていない名前でかつ、商標が取得できるものを選択
商標まわりはDebianなどで問題視される
なにはともあれ、まともにリリースできる体制に
Mozilla Firefox 1.0
世界中を巻き込んだリリース
拡張機能マネージャー搭載
比較的簡単に機能追加が可能で、ブラウザをカスタマイズするという概念が生まれる
Mozilla Firefox 1.5
野心的な機能を取り込んだリリース
自動アップデート
SVG(実装自体前からあった)
Canvas
着実にユーザが増えていく
拡張機能
意外と古い拡張機能
初期の頃から存在していた
XULという仕組みがそもそも対応している
Overlayがそのカラクリ
初期の拡張のインストール
XPIというパッケージは存在していたが、マネージャーなどがないため、install.jsとかいうファイルでインストール方法をJavascriptで記述
自前でインストーラ作ってるようなもの
拡張とプロファイル
初期のころはユーザプロファイルに拡張をインストールできなかった
UNIXでMozillaをルート権限を使ってインストールしていたら、拡張のインストールにもルート権限が必要。
タブブラウザ拡張piroたんによる初期の神拡張
Mozilla 0.9.5から実装されたタブブラウザ機能を大幅に改善
Mozilla時代に拡張という存在自体を世界に知らしめた
というか高機能すぎて本家が驚いてた
拡張機能マネージャーFirefox で実装
ちなみに実装したのはGoogle Chromeで拡張の仕組みを作ってる人
アドオンの管理が容易に
addons.mozilla.orgと合わせることでFirefox大勝利
と、思いたい
Googleの人がすごいという話
結局のところ
HTML5とFirefox
WHATWG
W3Cの動向に不満に感じたApple, Opera, Mozillaによって設立されたコミュニティ
AppleによるCanvasなどの仕様を取り込みつつWeb
開発者にとってメリットのある仕様を作成
HTML5
HTML5
WHATWGによるWeb Applications 1.0とWeb Forms
2.0の仕様を元にW3Cが現在協議している仕様
2008年にドラフト
2012年に勧告予定
videoタグのコーデックOgg/Theora H.264
Firefox ◯ ×
Google Chrome ◯ ◯Safari × ◯
Chromium ◯ ×
Opera ◯ ×
IE ? ?
コーデックの選択
HTML5ではvideoタグのコーデックは指定をしないという方針に
昔はOgg/Theoraを使う方針だった
AppleとGoogleあたりが反対?
H.264問題H.264自体に特許の問題があるため、Mozillaでは実装をしないという方針を出している
Mozilla自体が特許をクリアしても外部の開発者やディストリビューターが同じ問題を抱えてしまっては意味がない
GoogleがOn2を買収したので今後の動向次第
結局のところ
Google次第ってわけですか
ただし
HTML5の動向に対してはあまり問題はないと思う
過去に面倒な事がいっぱいあったので、それなりにみんな自重するんじゃないかと
とりあえず、HTML5自体が勧告されないとかいうオチの方がありえる話。。。
Firefoxの今後
Firefox 3.7
プラグインの分離
ブラウザのプロセスとプラグインのプロセスの分離
ブラウザクラッシュの原因のほとんどが解決される事が期待
実装は進んでいるので試すことが可能
ハードウェアサポート
Direct 2Dによるハードウェアサポート(Windowsのみ)
現在は危険なのでデフォルトでは動かない
ハードウェアサポート関係はわりと最近のトレンド?
IE9でもやってるよね!
Firefox 4
UIの変更
なんかGoogle Chromeっぽいものにしようという案
それなりに考えられているようだけど良さが正直わからない
タブ周りはアイデアを積極的に集めているのでどうなるかはまだまだ未定
Jetpack Reboot
拡張機能とは違う拡張の仕組み
再起動が必要ない
(ほぼ)Javascriptのみで実装可能
(旧)Jetpackに比べてパッケージ周りがかなり変わるので注意が必要
まとめ
まとめオープンソースになってしばらくは微妙だったけどFirefoxになってからはすごく良くなっている
Firefox 4以降のJetpackなど最近のトレンドもよく取り入れようとしているのでわりと期待していいと思う
HTML5はHTML5を取り巻くベンダー次第な気がするので長い目で見てていいんじゃないかな?