(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

58
( ) コミュニティメンバー から見た Mozilla / Firefox 歴史と展望 @Browser Workshop 株式会社 KBMJ ITC 松澤太郎 aka. btm (id:smellman) http://d.hatena.ne.jp/smellman/

description

ブラウザ勉強会プレ開催で話したプレゼンです。

Transcript of (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Page 1: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

株式会社KBMJ ITC部松澤太郎 aka. btm (id:smellman)

http://d.hatena.ne.jp/smellman/

Page 2: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

注意書き

内容は「だいたいあってる」程度

記述内容はわりと適当

今日の1時から5時までかけて作成した程度

しゃべりがメイン

Page 3: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

自己紹介

あだ名いろいろ

btm, smellman, 組長, くみちょ, たろーちゃん etc...

10進数で29歳になりました←new!

趣味は音楽(breakcore)、ラノベ、ゲーム

最近二次元でいいよとか言い出してる

Page 4: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

OSS的にLinux歴12年(高校3年から)

なお、コンピュータ歴13年

パソコンを買う前からLinuxに興味を持つ

Ruby on Railsで書かれたOSS ECパッケージ「エレコマ」のメイン開発者

http://ec.kbmj.com/

Page 5: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

エンジニア的に勉強した/使ってた言語

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....

Page 6: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Mozilla的な略歴(1)

1999年(大学1年)

Mozilla M3 (Millstone 3)をダウンロードして初めてビルド。

2000年(大学2年)

mozilla.party.jp 1.0に参加初めてのBugzillaを翻訳

2001年(大学3年)

XULアプリケーションのパッケージ化など

Page 7: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Mozilla的な略歴(2)

2002年(大学3年)

mozilla.party.jp 3.0 スタッフ参加もじら組スタッフ入り

2003年(大学4年)

もじら組組長へ

2004年(社会人1年)

mozilla.party.jp 5.0 スピーカーFirefox 1.0リリース前テスト

Page 8: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Mozilla的な略歴(3)

2005年(社会人2年)

C Magazine 執筆

2006年(社会人3年)

XULRunnerをいじりはじめる

2007年(社会人4年)

Software Design 執筆fx devconスピーカー

Page 9: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Mozilla的な略歴(4)

2008年(社会人5年)

Firefox 3 Hacks 執筆

2009年(社会人6年)

Software Design 執筆と連載もじら組脱退

2010年(社会人7年)

Software Design 連載終了イマココ!

Page 10: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

はじまりのはなし

Page 11: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Mozillaとは?

Mozillaの名前の由来は”Mosaic”を倒す”Gozilla”から

Mosaicがイリノイ大学に権利を取られて開発者が独立してできたのがNetscape

Mozillaの名前はその頃からあるコードネーム

Page 12: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Netscape aka. Mozilla

Netscape NavigatorのREADMEには、”n-e-t-

s-c-a-p-e”と書いて”Mozilla”と読むという文章がある

Page 13: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

ブラウザ戦争

Netscape社 VS Microsoft社の血みどろの戦い

Internet Explorerは奇しくもMosaicのコードを書いとって作られたもの

因縁の対決はNetscape社の惨敗へ

さすがにOS付属は強かった

Page 14: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Netscapeと伽藍とバザール

1998年、Netscape社がNetscape Navigator 5のコードを全て公開すると発表

Eric Raymondの「伽藍とバザール」などの論文からヒントを得る

Page 15: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

オープンソースとNetscape

Page 16: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

ソース公開

世界中からダメ出しをくらう

完成度がよくない

そもそもNGLayoutでよくね?

結局Netscape 5はリリースされず

Page 17: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

プラットフォーム問題

NetscapeはWindows, Mac OS, Unixに対応

Windows は Windows API

Mac OS は Carbon

Unix は Motif

OSごとに実装が違うのは面倒

Page 18: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

設計の変更

クラスプラットフォーム展開をサポートするためにGUIの設計やAPI群は共通化しておく必要がある

多少のレスポンスは犠牲にしてでも互換レイヤーを作成

多くの技術が初期から実装

Page 19: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

XUL

XML based Userinterface Language

GUIをXMLで書くという手法

一つの記述で全てのOSをサポートする

Page 20: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

XPCOM

Cross Platform Component Object Model

いわゆるCOMの一つ

インターフェイスを解してC++などで実装されたコードにアクセスをする

インターフェイスが共通なのでOSごとに低レベルレイヤーへのアクセスコードを変える事がない

Page 21: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

XPConnect

JavascriptからXPCOMを呼び出す仕組み

Javascriptから低レイヤーの実装が叩けるようになる

Page 22: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

モダン開発

GUIはXMLへ、GUIを制御するコードはJavascriptへ

コア開発とGUI開発が分離

リッチインターフェイス開発が進む

Page 23: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

そんなに世の中甘くない

初期の頃はレンタリングエンジンが遅かった

Geckoの性能がそのままGUIの性能へ影響

テーブルの処理ですら遅い

GUIもまだ洗練されていない

Page 24: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Netscape 6.0 リリース

世界中から酷評を食らったリリース

Mozilla M18ベース

安定とは程遠い

ソフトとして重過ぎる

というかなぜリリースしたのかよくわからない

Page 25: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Gecko

Mozilla 0.8ぐらいから徐々によくなっていく

テーブルレンタリングの改善(0.9?)

Mozilla 1.0はかなりまとも

Page 26: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

marquee問題

1.0ブランチに突如marqueeサポートが入る

中国ではmarqueeを使ったサイトが95%ぐらい占めていたため、中国市場を狙ってNetscapeとRedhat

がゴリ押し。

コミュニティから反発があっても受け入れられず

Page 27: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Mozilla 1.0ぐらいまで

コミュニティとNetscapeがたびたび衝突

AOLの資本になったNetscapeが企業色をたびたび出してきていた

marquee問題など政治レイヤーがわりと多かった

Page 28: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Firefox誕生

Page 29: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Mozillaの問題点複雑すぎるGUI

無駄にメニューが多い

ブラウザ、メーラ、IRCクライアントなどが入っているため、GUIだけで多くのファイルが存在

ブラウザ単体にしてGUIをリファクタリングするという発想からFirefoxの原型が生まれる

Page 30: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Mozilla Phoenix

ちゃんと名前がついた初めてのリリース

その前はとってつけた名前で開発版がこっそり公開されていた

Phoenix社の訴えで名称変更を余儀なくされる

Phoenix社はBIOSで有名なメーカー

Page 31: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Mozilla Firebird

Phoenixから名称を変更して再始動...だったのに

FirebirdというOSSのリレーショナルデータベースが存在

もちろん、怒られました

再度名称変更へ...

Page 32: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Mozilla Firefox

これ以上怒られないためにちゃんと使われていない名前でかつ、商標が取得できるものを選択

商標まわりはDebianなどで問題視される

なにはともあれ、まともにリリースできる体制に

Page 33: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Mozilla Firefox 1.0

世界中を巻き込んだリリース

拡張機能マネージャー搭載

比較的簡単に機能追加が可能で、ブラウザをカスタマイズするという概念が生まれる

Page 34: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Mozilla Firefox 1.5

野心的な機能を取り込んだリリース

自動アップデート

SVG(実装自体前からあった)

Canvas

着実にユーザが増えていく

Page 35: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

拡張機能

Page 36: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

意外と古い拡張機能

初期の頃から存在していた

XULという仕組みがそもそも対応している

Overlayがそのカラクリ

Page 37: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

初期の拡張のインストール

XPIというパッケージは存在していたが、マネージャーなどがないため、install.jsとかいうファイルでインストール方法をJavascriptで記述

自前でインストーラ作ってるようなもの

Page 38: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

拡張とプロファイル

初期のころはユーザプロファイルに拡張をインストールできなかった

UNIXでMozillaをルート権限を使ってインストールしていたら、拡張のインストールにもルート権限が必要。

Page 39: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

タブブラウザ拡張piroたんによる初期の神拡張

Mozilla 0.9.5から実装されたタブブラウザ機能を大幅に改善

Mozilla時代に拡張という存在自体を世界に知らしめた

というか高機能すぎて本家が驚いてた

Page 40: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

拡張機能マネージャーFirefox で実装

ちなみに実装したのはGoogle Chromeで拡張の仕組みを作ってる人

アドオンの管理が容易に

addons.mozilla.orgと合わせることでFirefox大勝利

と、思いたい

Page 41: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Googleの人がすごいという話

結局のところ

Page 42: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

HTML5とFirefox

Page 43: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

WHATWG

W3Cの動向に不満に感じたApple, Opera, Mozillaによって設立されたコミュニティ

AppleによるCanvasなどの仕様を取り込みつつWeb

開発者にとってメリットのある仕様を作成

HTML5

Page 44: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

HTML5

WHATWGによるWeb Applications 1.0とWeb Forms

2.0の仕様を元にW3Cが現在協議している仕様

2008年にドラフト

2012年に勧告予定

Page 45: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

videoタグのコーデックOgg/Theora H.264

Firefox ◯ ×

Google Chrome ◯ ◯Safari × ◯

Chromium ◯ ×

Opera ◯ ×

IE ? ?

Page 46: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

コーデックの選択

HTML5ではvideoタグのコーデックは指定をしないという方針に

昔はOgg/Theoraを使う方針だった

AppleとGoogleあたりが反対?

Page 47: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

H.264問題H.264自体に特許の問題があるため、Mozillaでは実装をしないという方針を出している

Mozilla自体が特許をクリアしても外部の開発者やディストリビューターが同じ問題を抱えてしまっては意味がない

GoogleがOn2を買収したので今後の動向次第

Page 48: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

結局のところ

Google次第ってわけですか

Page 49: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

ただし

HTML5の動向に対してはあまり問題はないと思う

過去に面倒な事がいっぱいあったので、それなりにみんな自重するんじゃないかと

とりあえず、HTML5自体が勧告されないとかいうオチの方がありえる話。。。

Page 50: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Firefoxの今後

Page 51: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Firefox 3.7

Page 52: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

プラグインの分離

ブラウザのプロセスとプラグインのプロセスの分離

ブラウザクラッシュの原因のほとんどが解決される事が期待

実装は進んでいるので試すことが可能

Page 53: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

ハードウェアサポート

Direct 2Dによるハードウェアサポート(Windowsのみ)

現在は危険なのでデフォルトでは動かない

ハードウェアサポート関係はわりと最近のトレンド?

IE9でもやってるよね!

Page 54: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Firefox 4

Page 55: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

UIの変更

なんかGoogle Chromeっぽいものにしようという案

それなりに考えられているようだけど良さが正直わからない

タブ周りはアイデアを積極的に集めているのでどうなるかはまだまだ未定

Page 56: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

Jetpack Reboot

拡張機能とは違う拡張の仕組み

再起動が必要ない

(ほぼ)Javascriptのみで実装可能

(旧)Jetpackに比べてパッケージ周りがかなり変わるので注意が必要

Page 57: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

まとめ

Page 58: (元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop

まとめオープンソースになってしばらくは微妙だったけどFirefoxになってからはすごく良くなっている

Firefox 4以降のJetpackなど最近のトレンドもよく取り入れようとしているのでわりと期待していいと思う

HTML5はHTML5を取り巻くベンダー次第な気がするので長い目で見てていいんじゃないかな?