MIRACLE
メールサービス申込 ユーザー登録 パートナー情報
お問い合わせ FAQ サイトマップ
MIRACLE LINUXの特長 製品紹介 サービス案内 購入 サポート 技術フォーラム

プロフィール

吉岡 弘隆 - よしおか ひろたか

日本OSS推進フォーラム ステアリングコミッティ委員
OSDL Board of Directorsを歴任
カーネル読書会主宰

2000年6月、ミラクル・リナックスの創業に参加。
95年~98年、米国OracleにてOracle RDBMSの開発をおこなっていた。
98年にNetscapeのソースコード公開(Mozilla)に衝撃をうけ、オープンソースの世界に飛びこみ、ついには会社も立ち上げてしまう。
2008年6月取締役CTOを退任し一プログラマとなった。

ミラクル関連リンク

採用情報

サイト検索

2008年9月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

« 2006年4月 | メイン | 2006年6月 »

Linux World Expo/Tokyo基調講演「OSS進化論」

Linux Worldで基調講演をする。いまだにプレゼンテーション資料が出来上がっていない。(とほほ)

下記のようなお話をするつもりだ。ひょっとしたらがらっと変えるかもしれないけれど、コメントやトラックバック頂ければ嬉しいです。

OSSが登場して8年、Linuxが登場して15年。GNUプロジェクトから約20年。

何が変わって何が変わらないのか。次の10年の解決すべき課題は何なのか?

GNUプロジェクトが発足した当時、インターネットはまだ一般的ではなかった。GNUの成果を入手するには配布手数料をFSFに送金して配布用テープ、そう当時はテープでソフトウェアは配布されていた、を入手するしかなかった。CD-ROMすら一般的ではなかった。

LinuxがNetnewsで話題になっているころ、インターネットは学者、研究者のおもちゃであった。世界中にftpサイトはできつつあったが、インターネットにアクセスできるのは特権であった。ネットワークの僻地にいるものはネットワークの中心にいるものに再配布を頼まねばならなかった。フロッピーディスクを回覧板のようにコピーして配布したりした。

インターネットのいたるところにあるフリーのソフトウェアを集めてCD-ROMにパッケージ化し、それを商売とする人たちが登場したのが90年代の初めのころである。Linuxもその手のCD-ROMに採録されていた。そして単にソースコードを収録するのではなく、すぐに実行可能なバイナリとインストーラを同梱したCD-ROMが登場した。それがLinuxディストリビューションの登場である。90年代中ごろである。

インターネットの勃興とXMosaic

初期のフリーソフトウェアは間違いなくマニアのマニアによるマニアのためのソフトウェアであった。

フリーソフトウェアを中心としたビジネスモデルは離陸していなかった。ソフトウェアの改良は同じ大学の学科や研究室というような地域的なコミュニティに限定されていて、地球規模の自立的なコラボレーションが発生するまでにはもう少しの時間が必要であった。

WWWは80年代末に登場したがそれが爆発したのはXMosaicというGUI型のブラウザの登場とインターネットの普及による。

93年の春、NCSAのMarc Andreessen らによるXMosaicはインターネットの利用を劇的に変えた。XMosaicはソースコードが公開されていたので、腕に覚えのあるハッカーたちがいろいろな改良を加えた。日本でも富士通の渡辺らがいち早く日本語対応のパッチを作成し、インターネットで公開した。NTTの高田らは、そのようなパッチを集めて、再配布した。当時、高田はinfotalkというメーリングリストを主宰していて、インターネットの利用技術、例えばWWWなど、について活発に議論する場を提供していた。

当時、わたしは米国系コンピュータハードウェアベンダー(いまはなきDECという会社だ)の研究開発部門にいて自由にインターネットを利用できる特権的な立場にいた。高田が再配布している日本語化パッチを、当時日々使っていたVAX/VMSのワークステーションに移植し利用した。パッチの移植は土日に会社に出てきてやった。

わたしは日本語化のパッチが実際に会ったことも話したこともない連中を中心にあれよあれよというまに出来上がっていく不思議な経験を生まれて初めてした。後にバザールモデルによるソフトウェア開発として知られるものであった。

そしてVMS用のインストーラを作り、社内で公開したところ、文字通りあっというまに燎原を焼き尽くす野火のごとくそれがインストールされていった。簡単にインストールできそしてソフトウェアの魅力さえあればソフトウェアは自然と広まる。それを体験した。

Netscapeの決断とOSSの登場

98年米国Netscape社そのウェブブラウザのソースコードを無償で公開した。OSSと呼ばれるパラダイムを世界で初めて実行したものであった。

従来のフリーソフトウェアとオープンソースソフトウェアの違いは何か?わたしは下記の3つで特徴つけられると思う。

  • OSSはマーケティングである
  • バザールモデルを前提としている。そのためにブロードバンドインターネット前提
  • 善意のコミュニティの信頼している

リチャードストールマンによって提唱されたフリーソフトウェアとOSSはソフトウェアのライセンスという意味で言うと、ともに、ソフトウェアの利用、変更、再配布を保証するという観点で差異はない。

ライセンスから言えばOSSはフリーソフトウェアを包含すると言ってもいい。

OSSはマーケティング運動であった。フリーソフトウェアはリチャードストールマンが醸し出す反商業的なイメージを持っていた。エリックレイモンドらは、フリーソフトウェアの反商業的なイメージを払拭し、ビジネスで利用できるようにしたかった。マーケティングには新しい名前を必要とした。それがOSSである。

ソフトウェア開発モデルとしての革新性(革命性と言ってもいい)はバザールモデルにつきる。

リチャードストールマンは、ネットワークの向こう側にいる人間を必ずしも信用していなかった。それが彼をGPLというライセンスを発明させる動機になったわけであるが、FSFが開発しているソフトウェア(例えばemacsというエディタなど)に改良をして、その改良を取り込んでもらうようにするためには、著作権をFSFに譲渡する書類にサインを求められる。

同じGPLというライセンスを持つLinuxは、そのような面倒な手続きを経なくても、Linusが必要と思ったものが取り込まれる。世界中の人々がよってたかって勝手に改良を続けていく。OSSではインターネットの向こう側にいる人間に対する信頼がベースにある。

FSFのような組織によって管理されるアプローチを、エリックレイモンドは伽藍(大聖堂)型ソフトウェア開発と呼び、Linuxのようなコミュニティによってどんどん改良されるアプローチをバザール型ソフトウェア開発と呼んだ。

バザールが発生するには、ブロードバンドインターネットおよび善意のコミュニティへの信頼を必要とする。

このバザール型ソフトウェア開発の革新性に米国Netscape社は気づきそれを利用しようとしたが、プロジェクトが成功する前に会社はAOLに売却されてしまった。

しかし98年はビジネス界がOSSを発見した年でもあった。OracleがLinux版を発表し、IBMがApacheのサポートを表明、IntelがRed Hatに出資をするなど、OSSとビジネスの接点ができた年だった。

ブロードバンドとコミュニティの発生

Netscapeのソースコードが公開された時、ブロードバンドのインターネットは一般的ではなかった。わたしも28.8Kbpsのモデムで2時間半かけて10数MBのソースコードをダウンロードした。たかがソースコードを入手するのに2時間半もかかるようではわたしのような物好き以外誰がダウンロードするのだ。

最近のブロードバンド(ADSLでも光でも)だったら数分もかからないであろう。

多くの開発者を得るためにはブロードバンドインターネットが必要だった。

そして、善意のコミュニティを前提としている。

コミュニティによって、ソフトウェアの不具合は発見され、修正され、機能が追加されていく。そこには、中央集中的な管理組織や長期的なロードマップはないし、プロダクトマネージャもいない。予算や人員のアサインなんていう概念すらないように思える。従来のソフトウェア工学ではうまくいくわけがないと考えられていた方法によってソフトウェアが進化し続ける。

専門家の常識、理解を超えた開発モデルである。

しかし、ここにある現実として、バザールモデルによってすばらしいソフトウェアが開発されているのも事実である。

そして、この次の10年OSSがどのように発展していくか、基調講演で議論していきたいと思う。

企業のOSS支援、車輪の再発明とフォーク

昨日のブログ でもふれたとおりOSSの成功のカギはコミュニティの形成である。
成功しているOSSの多くは個人的なモチベーションによって開発されたものである。Linuxにしろ、Rubyにしろ、Perlにしろ、それらは基本的には、楽しいから(Just For Fun)作ったものである。
一方、企業発のものでは、例えばMozillaはNetscape社のブラウザをオープンソース化したものである。Mozillaに関して言えば当初はやはりNetscape社の従業員がそのコードのほとんどを貢献していた。いわゆるコミュニティベースになるには長い時間が必要であった。(実証的な検証が必要であるが、そのような印象をわたしは持つ)
企業発の場合、スポンサー企業の財政的支援が切れると、その時点でプロジェクトは失速する。なぜならば、コミュニティーベースのOSSと違ってコアメンバーが自らのモチベーションで開発しているのではなく、仕事として開発しているからである。企業発のOSSでも、成熟してくれば、ある程度コミュニティが発達し、ユーザーが、カジュアルな開発者になる場合もある。Mozillaの拡張機能を開発している人たちは必ずしもMozilla財団 に雇用されているわけではない。
よっぽど財政的基盤が確固たるものでないと、コミュニティが形成される前に企業発のOSSプロジェクトは失速する可能性がある。
商用ソフトウェアの場合、競合製品に対し、どのように差別化するかが重要な問題になる。例えばXXXという機能が競合にはないから商品価値があるという立場で開発をする。一方OSSの場合、既存のOSS、AにXXXという機能がないから新規にBというOSSを作るという立場で開発するのはおそらく成功しない。それは、OSSとしてBを開発できないからではなく、(多分それはこの問題のなかでもっとも簡単なことであろう)、新規にBのコミュニティを作るのが極めて難しいからである。AとBの機能は似ていてBにはAにない魅力的なXXXという機能があるにも関わらず、既にあるAのコミュニティをBに移行させることは難しいという意味で、BがOSSとして成功することは難しい。
正しい戦略はXXXという機能が必要で、多くの人に魅力的であるならば、新規にBというOSSを作成し、コミュニティを分断するのではなく、Aのコミュニティに乗り込んでXXXという機能を実装することである。コミュニティの分断というのはフォークと呼ばれているが、なるべくならばそれを避けようという経験則がある。BというOSSを作ることは通常、車輪の再発明とも呼ばれていて、よっぽどの事情がない限り、コミュニティからは馬鹿にされることはあっても尊敬されることはあまりない。プロジェクトのフォークというのはよっぽどの事情があって行われるものであるが(そうでなければ単に無視をされるだけである)双方が無傷とはいえない場合が多いのは注意が必要である。
まとめると、企業がOSSを支援する場合、新規にOSSを立ち上げるのではなく既存のOSSコミュニティに参加する形で貢献するほうがそうでない場合より成功の可能性は高い。

OSS発展の三要素

オープンソースソフトウェア(OSS)は下記の三要素によって発展していった。ソースコードを公開したことだけで成功したわけではない。

  • ソースコードの公開(ソースコードを自由に利用、変更、再配布できること)
  • インターネット
  • コミュニティ

最初のスタート地点はもちろんソースコードの公開である。公開するだけではなく、それを自由に変更、再配布できることが重要である。変更ができるために、腕に自信のあるハッカーがバグの修正やちょっとした機能の追加をオリジナルの作成者にパッチを送りつけることが可能になる。

OSSの発展の基盤としてインターネットの自由な利用があげられる。普通の人が普通にインターネットを利用できる環境ができて初めて一部のインターネットアクセスをもつ特権的な人々(大学や企業の研究者)から普通の人々がOSSの開発に関与できるようになった。たかだか10年の話である。日本においてブロードバンドが普及しはじめたのは高々数年である。もちろん、フリーソフトウェアの文化はUnixの発祥のころまでさかのぼることができるが、それに関与していたのは主に大学のコンピュータサイエンスの研究室だった。同じ研究室あるいは学科の仲間とソースコードを利用しあうということはあったが広く利用されるようになったのはインターネットが一般に普及を始めてからである。インターネットのおかげで文字通り地球の裏側の会ったこともない人とソースコードを介して共同開発をするというパラダイムが実現したのである。地球規模の開発をほとんどコストゼロで行うインフラとしてインターネットの存在は欠かせない。

発展しているOSSには健全なコミュニティがある。多くの利用者と不特定多数の開発者からなるコミュニティである。

発展しているOSSには、通常はオリジナル開発者(一人ないしは少数のコアメンバー)とアクティブな開発メンバーそして不特定多数のカジュアルな開発者からなる活発な開発コミュニティが形成されている。バグの報告、修正は不特定多数の開発者が行うこともあるし、利用者が発見、報告し、それ以外の誰かが修正する場合もある。

ソースコードの公開やインターネットの存在は今となっては当たり前である。しかし、ソースコードを公開しさえすれば誰かが開発に参加してバグを修正してくれると考えるのは大間違いである。そんなことはありえない。コミュニティの存在が不可欠である。

多くのOSSは(ほとんどすべてといっても過言ではない)、このようなコミュニティを持っていないというのは注目にあたいする。Linux、 Apach、MySQL、PostgreSQL、Perl、PHP、Ruby、Samba等々、定番のOSSはむしろ例外中の例外なのである。

  • 魅力的なソフトウェア
  • コミュニティポータル
  • 持続的な改良と発展

コミュニティが形成されるためには、少なくとも、そのソフトウェアが十分魅力的で、熱狂的な利用者がいなければいけない。たとえ利用コストがゼロでも、あなたが開発したソフトウェアをわざわざ他のソフトウェアやめて移行のコストを払ってまで利用するにはあなたのソフトウェアに利用するにたる十分な魅力が必要である。十分多い利用者がいれば何百人か何千人かあるいは何万人に一人がバグを報告し修正のパッチを送ってきてくれるかもしれない。

利用者が自由に情報を交換するためにメーリングリストや掲示板あるいはソースコードやすぐにインストールできる形式のバイナリなどをダウンロードできる場所が必要である。いわゆるコミュニティのポータルサイトである。これは自前で用意してもいいし、sourceforege.netのような無償で使えるポータルサイトでもいい。

ある程度、利用者も増え、オリジナル開発者以外の人がパッチを送ってきてくれるようになるのが初期の段階である。さらに開発者が増え、自立的に持続可能な形になるOSSプロジェクトというのは、それほど多くはない。

さらに多くの利用者と開発者を獲得するためには、継続的に改良を繰り返すことが必要である。利用者が多ければ多いほど適用範囲が広がり、バグは報告され、修正されていき、新機能が追加されていく。多くの改善案を取り込むために、コアメンバーは謙虚に利用者やパッチを送ってくれた人々の声に耳を傾ける必要がある。俺が俺がというスタイルは時には必要ではあるが結局のところ長続きしない。新規の開発者をリクルートするためにもコアメンバーは参加者のモチベーションを高める必要があるのであるが、実のところそのコツというかコミュニティを破綻させずに運営していくノウハウというのは属人的な性格を持つ。成功の秘訣というのが明示的にどこかに書かれているというものではない。

結局のところOSSを成功させるために一番重要なのはそのコミュニティの形成ということになるのだがそれについての理解というのはまだ十分とは言えないのが実情である。

企業としてOSSコミュニティをどう形成するか、あるいは既存のコミュニティとどう付き合うかについては別途議論したいと思う。

会社情報 採用情報 個人情報保護方針 商標等取り扱い事項 English
Copyright(c)2000-2006 MIRACLE LINUX CORPORATION. All Rights Reserved.