「オープンソース」は唯一の正解か

「オープンソース」は唯一絶対の正解か? 「オープンソース」は過去の遺産の簒奪者なのか? まずはオープンソースとその定義を巡る議論を整理してみよう。

今までも折に触れて述べてきたことなのだが、依然として誤解があるようなのでここでまとめておきたい。

「オープンソース」はソフトウェアを「自由」にする手法として、ただひ とつのものなのだろうか。筆者はそうは思わないし、そんな言説には徹底して 反対する。これを読んで驚いた方は以下も注意深く読んで 頂きたい。

以下では、ハッカーの大半は「ソースコードが自由に利用できる状態」を 好む、と仮定して話を進める。なぜ好むかという理由は簡単で、そちらのほう がハックしやすいからだ。世の中は広いので、中には特許やライセンスでガチ ガチに縛られた状態を好む奇特な方もいるかもしれないが、ここではとりあえ ずそういった指向の方については触れないことにする。

ここでただちに問題となるのは、「ソースコードが自由に 利用できる状態」とはそもそもどんな状態か、ということだ。例え ば、著作権という概念がそもそも存在しなければ、あるいはソフトウェアが著 作物に分類されていなければ、世にあるソフトウェアはすべて自由に利用でき る状態にあると考えられる。または、特定のソフトウェアがパブリックドメイ ンに置かれていれば、そのソフトウェアに関しては誰でも自由に利用できると 考えて良いだろう。これらがおそらく最も極端な例だ。

次に、BSDスタイルのライセンスが適用されたソフトウェアについて考えて みよう。これは非常に緩やかなライセンスで、改変や二次利用などが明示的に 許可されている。ふつうに考えれば十分「ソースコードが自由に利用できる状 態」にあると言ってよいだろう。しかし、さすがにライセンスの規定を無視して、「著作権表示を消してしまいたい」あるいは「カリフォルニア大学や著作権者の名前を宣伝に使いたい」というような要望には応えることができない。パブリックドメインならこうし た行為ももちろん「自由」だが、ではパブリックドメインのほうが良いかと言 えば、自分のクレジットが消されてしまうことに不快感を覚えるハッカーもい るだろう。また、リチャード・M・ストールマンに近い考え方を持つ人々から は、「二次的著作物のプロプライエタリ化に寛容すぎて、真の意味で自由を保 証するものではない」というような批判も受ける可能性がある。

ではそのストールマンが書いたGNU GPLはどうだろうか。もちろん改変や二 次利用など、ハッカーの基本的な権利は保証されている。それらに加えて、 GNU GPLではオリジナルから派生した二次的著作物もGNU GPLを継承すること、 頒布に追加的な制限を加えてはならないことなども規定されている。いわゆる 「コピーレフト」だ。もちろんストールマンはこれが必要だと思ったから取り 入れているわけだが、BSDスタイルの場合とは逆に、この種の「制限」はハッ カーの自由を損なうと考える人々もいる。コピーレフトを主張すべきか否かで すでに20年ほど激しい論争が続けられているが、依然として誰をも納得させら れるような答えは出ていない。おそらく永久に結論は出ないだろう。

ようするに、「ソースコードが自由に利用できる状態」を一意に規定し、 定義することなど最初から不可能なのだ。ハッカー一人一人にとって、あるい は直面する個々のケースにおいて、重要となるライセンス的な制約は千差万別 である。あるハッカーにとっては、ライセンスに「平和利用に限る」と書き込 むことは大した制限ではない。あるハッカーにとっては、「商用利用禁止」と 書いたところで別に彼が考える「ソースコードが自由に利用できる状態」が損な われるわけではない。あるハッカーにとっては、ライセンスでコピーレフトを 主張したところで別に彼の考える「自由」は失われず、むしろ強化されるくら いだ。そもそも、現在に至るまでGNU GPLやBSDスタイルを始めとしていくつも のライセンスが生き残ってきたのは、そういった個々のライセンスに特定の需 要があったからに他ならない。厳密な意味でone fits for allなライセンスな どないのである。

しかし、ハッカーたちが議論を重ねることによって、だいたいこの程度の基 本的な「自由」がライセンスで保証されていればまあ実際上は満足できるだろ う、というある程度の妥協線、いわば「落としどころ」を考えることはできる。 1998年にブルース・ペレンスやエリック・レイモンドらによって「オープンソー スの定義」として定式化された「オープンソース」は、そういった落としど ころ、「ソフトウェアが自由に利用できる状態」のうち成功した一つの例に過 ぎない。言い換えれば、「オープンソース」は「ソフトウェアが自由 に利用できる状態」の唯一の正解ではない。当然、「オープンソー スの定義」は「ソフトウェアが自由に利用できる状態」の唯一絶対の定義でも ない。これは筆者としてはごく当たり前のことだと思っていたのだが、驚いた ことにオープンソースを批判する立場の人々のみならず、擁護する人々もこ の点について勘違いしていることがあるようなので、ここで強調しておきたい。

特に、最近「オープンソース」に対して批判を浴びせる向きが多いのだが、 それらの多くは根本的にこのあたりの誤解から発しているのではないかと思わ れる。彼らの主張として良く見られるのは、「『オープンソース』などという 言葉が出てくる前から『オープンソース』は存在した」「『オープンソース』 は(彼らの考える、いわゆる)『オープンソース』の唯一の定義ではない」とい うようなものだが、彼らが本当に言いたいのは、「『オープンソース』などと いう言葉が出てくる前から(彼らの考える)『ソフトウェアが自由に利用できる 状態』は存在した」「『オープンソース』はいわゆる『ソフトウェアが自由に 利用できる状態』の唯一の定義ではない」ということであろう。先ほどから述 べていることからも明らかなように、こういった主張は別に間違っていないの である。そもそも、すでに1984年ごろ、ストールマンは彼が考える「自由」の 具体化である「フリーソフトウェア」の概念を打ち出しているのだから。

しかし、現在問題としている「オープンソース」とは、1998年に生まれた 新しい用語と概念であって、あるソフトウェアに適用されたライセンスが「オー プンソースの定義」で規定された、(現在は10個の)諸条件を満たしている、と いう意味だ。もっと言えば、それしか意味していないので ある。すでに存在する事象を後から完全に過不足なく定義するのは困難で、基本的には不可能なことだと筆者は思うが、「オープンソース」に関しては、そもそも定義のほうが先にあったというのが大きな違いである。これを否定するには、そもそもそれ以前にソフトウェアの世界で「オープンソース」という言葉が別の意味で広く使われていたことを論証しなければならないはずだが、それは事実上不可能だろう。筆者自身、1998年にはすでにこの世で生活していたが、当時もそれ以前も「オープンソース」などという言葉は聞いたことがなかった。ゆえに、少なくとも「広く」一般的に使われていた言葉だとは思えない。よって、 「オープンソースの定義」は当然「オープンソース」を一意的に定義している のであって、二者は等価かつ恒等的な関係であると考えられる。すな わち、「オープンソース」は固有名詞であり、一般名詞ではないのである。それゆえ、 「オープンソースの定義」に準拠していない「オープンソースソフトウェア」 はあり得ない。一方で、「オープンソースの定義」に準拠 していないが「ソースコードが(ある人の基準では)自由に利用できる」ソフトウェアは いくらでも存在しうるのである。それは、個々の考え方の問題に過ぎない。

「オープンソース」を標榜しつつ独自のライセンスを採用していて、それ がたまたま「オープンソースの定義」から逸脱している、というケースがときどきある。このような場合、「オープンソースではありませんね」と指摘すると 怒り出す方がいる。自分が貶められたような気分になるらしいのだが、もちろ ん指摘する方にはそんな意図はないし、そんな風に思う必要もない。単なる事 実の指摘である。そもそも、彼が考える「自由」さえ確保されていれば、「オー プンソース」かどうかなど些細なことであろう。しかし、依然として彼のライ センスは「オープンソース」ではないし、彼が自分のプログラムを「オープン ソースソフトウェア」と呼ぶのは、語義の混乱を招くということを差し引いて も適当ではないのである。

ただ、あえて付け加えておくと、現在の「オープンソースの定義」はそれ なりに良く練られており、ぎりぎり必要最小限の条件のみを厳選していると筆 者は思う。少なくとも、オープンソースによるバザール開発モデルを考えた場 合には、経験上不可欠となるものばかりだ。筆者が「オープンソース」にすることを勧める理由もここにある。多数のハッカーによる議論から生まれ、現在でも依然として激しい論争の対象となっている、「オープンソースの定義」に反駁する のは容易ではない。しかし、きちんと論証して欠陥を指摘すること自体は決して不可能ではないと筆者は思う。以前 から述べているように、筆者としては、中途半端な感情論ではなく、このよう な「オープンソースの定義」の内実に関して、論理と事実に基づいた議論が活 発に行われることを期待したいのである。

上記とも関連するのだが、最後に、なぜ筆者がこういったことを強調する か述べておきたい。理由は簡単で、筆者自身現在の「オープンソース」に満足 していないからだ。個人的には、現行の「オープンソースの定義」に加え、コ ピーレフトを要求することが必須だと考えている。長期的に見てソフトウェア が自由であり続けること、そして「自由なソフトウェア」が波及的に広がって いくことをメカニズムとして保証することが重要だと思っているからだ。場合 によっては、今後ソフトウェア特許の行使に対する制限なども必要になってく る可能性がある。簡単に言えば、筆者にとって「ソースコードが自由に利用で きる状態」を保証するには、いくぶん「オープンソースの定義」は弱すぎるの である。

しかしながら、前にも書いたようにこれらは論争を呼ぶポイントであって、 結論は出ていないし、おそらく一般論としては永久に決着のつかない問題であ る。筆者自身確固たる自信はない。そういった状況において、「オープンソー ス」は、筆者にとってはなかなかいい線をいっている、十分満足できる妥協線 だと思う。ゆえに支持する。ただそれだけの話である。「妥協」であることは 「オープンソースの定義」の価値をいささかも貶めるものではない。皆さんは 自分で良く考えて、自分の考えを決めてほしい。それこそが、「自由」という ことなのだから。