ミューズアソシエイツのホームページへ パシフィカファンドのホームページへ JTPAのホームページへ 梅田望夫
the archive

オープンソースとは何か

1998年10月1日[コンセンサス]より

ソースコード公開によるイノベーション
 シリコンバレーやコンピュータ産業の1998年を読み解く重要なキーワードとして、私は「オープンソース」という考え方を挙げる。

 オープンソースとは、全く新しい考え方に基づく大規模ソフトウェア開発のあり方である。あるソフトウェアのソースコードを無償(Free)で公開し、世界中のプログラマの誰もが自由(Free)にそのソフトウェアを改良して再配布することを許すソフトウェア開発方式のことだ。

 Netscape社のブラウザは、現在このオープンソース開発方式になっている。7・8月合併号の本連載「Netscape社はどこへゆく」では、このNetscape社のソースコード公開について、そしてそれを支えるソフトウェア開発者たちの「不思議な文化」について触れた。今回は、Netscape社固有の話題ではなく、ソフトウェア製品という知的構築物がいかにして作られるべきなのかという視点から、この「オープンソース」という話題を取り上げて考えてみたい。

 オープンソースという言葉は、98年になってから正式に使われるようになった用語であり、その前身は、パブリックドメイン、シェアウェア、フリーウェア、フリーソフトウェアといった言葉が使われていた(表1参照)。主に商用ソフトウェアに対立する概念で、プログラマが自由に作ったソフトウェア製品を限りなく無償に近い形で普及させるという思想に基づく活動である(以下、これら4つの言葉の総称として「フリーウェア的世界」という言葉を便宜上使うことにする)。

表1 パブリックドメイン、シェアウェア、フリーウェア、フリーソフトウェアの違い
パブリックドメイン ソフトウェアがいったんパブリックドメインになったら、誰も所有しない。使用や配布には、何の制約もない。開発者はパブリックドメインにしたとたんに著作権を放棄する。そこが以下の3つと根本的に違う点。
シェアウェア 無料で配布されるが、ユーザがそのソフトウェアに価値を見出したら、なにがしの費用で(通常はかなり安い)そのソフトウェアを購入するのが普通。
フリーウェア バイナリーコード(ソースコードではなく)で無料で配布されたソフトウェア。
フリーソフトウェア フリーウェアと同義で使われることもある。ただ、フリーソフトウェアの場合、バイナリーコードのみならずソースコードを無料で配布して、多くの開発者が自由にそのソフトウェアに手を加えることが可能。本質的にはオープンソースと同義。
注:この定義も、人によっては違った理解をしている場合もある、ことほど左様に、定義があいまいな状況にあるわけだ。

 しかし、これらの用語のそれぞれが微妙に意味が違い、なおかつ、英語のFree(フリー)という言葉には、無償・無料という意味と、自由という意味の両方が含まれているため誤解を招きやすい。そこに来て、Netscape社のソースコード公開発表以来、この思想はハッカー的アンダーグラウンドの世界から、産業界のメジャーストリームに一躍おどり出ることとなった。そこで、その道の大物たちが一堂に会して、このオープンソースという新しい用語を正式に使っていこうということで合意したのである。

 昔からある4つの言葉(表1参照)に対して、オープンソースとは、言葉通り、ソースコードを公開して配布すること自身に価値を置いている。ソースコードを公開すると、世界中の誰もが自由にオープンで分散した開発に参加可能となり、その方がずっと素晴らしいイノベーションが生まれるはずだという思想に基づいた考え方だ。ここには別に、自由や無償を条件付けるような反商業的なイデオロギーは一切含まれていない。

 この思想が論文として発表されたのが、97年5月、エリック・レイモンドによってであった。原題は「The Cathedral and the Bazaar」。山形浩生氏による邦訳(「伽藍とバザール」)をインターネット上で読むことができるhttp://www.post1.com/home/hiyori13/freeware/cathedral.html)。オープンソースの流れを大きく変えた論文として、本論文は一読の価値がある。

 従来のソフトウェア開発方式(一企業内での大型プロジェクト)を、中央集権的管理によって構築されたCathedral(大聖堂)にたとえ、オープンソース開発方式を、人々が自分の意志で集まって賑わいを見せるバザールに模している。

 この論文がオープンソースの流れを一気に加速させる理論的支柱となった。
『自分が歴史の変化に手を貸したと気がつくのは、なんとも奇妙な感じだ……

 1998年1月22日、ぼくがこの論文を初めて発表してからおよそ 7ヵ月後、Netscape社がCommunicatorのソースを無料でばらまく計画を発表した。この発表の前日でさえ、こんなことが起こるとはつゆほども知らなかった。 Netscape社の副社長兼技術担当重役の Eric Hahnが、発表のすぐ後にぼくにメールをくれた。こんな文面だ。「Netscape 全社員を代表して、そもそもこのポイント把握を助けてくれたことに感謝します。あなたの考え方と論文が、われわれの決断にあたって根本的なひらめきを与えてくれました」

 翌週、ぼくは Netscape 社の招きでシリコンバレーに飛び、かれらの重役や技術陣との丸一日にわたる戦略会議(1998年2月4日)に出席した。ぼくたちはNetscape のソース公開戦略とライセンスをつくり、その他、いずれフリーソフト(オープンソース)コミュニティに重大で前向きな影響をもたらすはずの計画をつくりあげた。』(「The Cathedral and the Bazaar」の山形浩生氏による邦訳より抜粋)

フリーウェア的世界・第1世代
 この論文の著者レイモンドは、現在自らの職業を、オープンソース・エバンジェリスト(伝道者)と称し、http://www.opensource.org/というサイトを運営しているが、その中でオープンソースの思想を一言で紹介する名文がある。
『The basic idea behind open source is very simple. When programmers on the Internet can read, redistribute, and modify the source for a piece of software, it evolves.』(オープンソースの背景となる考え方はとてもシンプルだ。インターネット上のプログラマが、ソフトウェアのソースコードを読み、修正し、再配布できるとすれば、ソフトウェアは進化するのだ)

 つまり、オープンソースの場合、誰かがあるソフトウェアの中核部分を自発的に開発してソースコードを公開し、そのソフトがインターネット上の世界中のプログラマをわくわくさせるような魅力に富んだものであると、彼らがよってたかって新機能を開発したり、バグを修正したりしながら、製品の完成度を高めていく。もちろん、彼らは誰からも強制されない代わりに、一銭も金をもらわず、ただただ「好きで楽しいから」素晴らしいプログラムを書く。それでソフトウェアは進化するというわけだ。

 従来型ソフトウェア開発の立場から言えば、スペックもない、製品計画や製品戦略もない、いい加減なやり方で、実用に耐えるソフトウェアなど開発できるはずがない。

 しかし、一部のプログラマ(通常は一企業のソフトウェア開発プロジェクトを構成する社員とコントラクタ)しかソースコードを見ることのできないクローズな開発体制(現在はこれが当たり前で、別にクローズと称しているのは、オープンソースの立場に立った人たちだけだが)に比べて、格段に質の高いソフトウェアが開発され、バグが修正されるスピードも格段に速いというのが、オープンソース派の主張なのである。

 オープンソースという言葉こそ新しいが、前述したように、オープンソースに到るフリーウェア的世界の歴史は長い。もともとソフトウェア文化の中に、「Free」(自由、無償)という概念はずっと存在してきた。表2にその歴史をまとめたが、この領域で最も影響力の強かった人物は、リチャード・ストルマンである。ストルマンは、ビル・ゲイツの対極に存在する人物といってよく、過激な自由の標榜者だ。彼が始めたGNUプロジェクトでは、ソースコードの修正、再配布は自由にできるが、たとえば企業が追加変更したプログラムのソースコードを公開しないとライセンス違反となるような設定がなされ、思想的にソフトウェアの独占的利用は禁止している。

 このストルマンの流れをくむフリーウェア的世界は、反商業的なため、ソフトウェア産業との親和性があまりにも悪く、思想的な部分が強すぎるきらいもあり、ある一定数以上の信奉者を得ることができなかった。フリーウェア的世界の第1世代と呼んでもよいのかもしれない。

表2 1969年から1997年までのフリーウェア的世界の歴史
1969-70 Unix誕生(AT&T ベル研)
1975 リチャード・ストルマン(MIT)が最初のEmacsエディターを作る。
80年代初頭 最初のsendmailプログラム(電子メール配信管理ソフト)が流通。
1983 TCP/IPプロトコルがミリタリー・スタンダードとして採用される。
1984 リチャード・ストルマンGNUプロジェクトをスタート。
1987 スクリプト言語「Perl」の第1リリース。
1988 スクリプト言語「Tcl」が開発される。
1991 スクリプト言語「Python」がパブリックドメインとして登場。
1991 リーヌス・トーバルドがLinuxの第1バージョンをリリース。
1993 Unix-OS Free BSDプロジェクト、スタート。
1994 Officiai Linux 1.0リリース。
1995 WebサーバーApache 1.0リリース。
1997 1998年以降の動きに大きな影響を与える論文「伽藍とバザール」(原題「Cathedral and Bazaar」がエリック・レイモンドによって発表される。
出典:www.opensource.orgより作成
注:スクリプト言語とは、インタプリンタで動くプログラミング言語処理系のこと。

Linux(リーヌクス)とApache(アパッチ)
 その対比という意味で、フリーウェア的世界の第2世代とも呼べるのが、Netscape、Linux(リーヌクス)とApache(アパッチ)であろう。

 Linuxは、フィンランド・ヘルシンキ大学の学生、リーヌス・トーバルドが1991年、手作りで作ったPC用UNIXが中核部品となって、その周辺に世界中の優れたプログラマがネット上で自発的共同開発を行なった結果完成し、今も進化を続けるOSである。多くの米国企業が本格採用に踏み切るほど、完成度が高く、Windows NTの対抗馬として一躍脚光を浴びる存在となりつつある。Linuxのユーザ数とコードサイズの推移を図に示したが、97年から98年にかけてのたった1年で、約70万行のコードがネット上のプログラマの自発的共同作業によって生み出されているのは驚異的といえる。

Linux推定ユーザー数とサイズの推移

(注) OSのコア部分が大きく膨れ上がっているわけではなく、周辺機能が充実していくにつれてコードサイズが大きくなっている。

 Apacheは、IETF(Internet Engineering Task Force)のWeb関連のメーリング・リストのメンバが、ボランティア的必要にかられて、95年1月に開発を開始したWebサーバソフトである。98年6月、IBMが同社ソフト製品群WebSphereの一部として、Apacheの販売、サポートを開始した(表3に98年に入ってからのオープンソースの動きをまとめた)。

表3 オープンソースをめぐる98年の動き
1998.1.22 Netscape社がCommunicatorのソースコードのリリースを発表
1998.2.5 シリコンバレーにフリーウェア的世界の大物たちが集まって協議し、オフィシャル「オープンソース」という用語をこれから使うことで合意。
1998.3.31 Netscape社がCommunicatorのソースコードをリリース。数時間後から、その改良版、修正版がネット上で流通し始める。
1998.4.7 「フリーウェア・サミット・コンファレンス」が開催され、オープンソースを利用したビジネスのあり方が議論される。
1998.6.22 IBM社が、同社のWebSphereスイートの一部として、Apache(アパッチ)の販売、サポートを発表。
1998.7.17 Oracleとinformixが、Linux用に同社データベース移植することを発表。
出典:www.opensource.orgより作成

 Netscape、Linux、Apacheに代表されるフリーウェア的世界・第2世代の特徴は、(1)ストルマンに代表される第1世代・反商業主義とは一線を画し、オープンソースで開発されたソフトウェアの周辺でのソフトウェア産業の隆盛を容認していること、(2)インターネットというインフラが存在することを前提に、物理的に離れた場所に居る世界中の膨大なプログラマたちの共同作業という環境を想定していることの2点に集約される。

 この2点で、フリーウェア的世界・第2世代のコンピュータ産業に及ぼす影響は、第1世代のそれとは比較にならない程に大きい。もしも今後何年かの間に、オープンソース開発方式で生まれたソフトウェアが主流になれば、Microsoft社への富の集中を中心とする現在の産業構造にも変化が生まれる可能性がある。

ページ先頭へ
Home > The Archives > コンセンサス

© 2002 Umeda Mochio. All rights reserved.