オープンソースの現実、と若干の理想(上)

他人の文章をあげつらうのはあまり趣味のよいことではない。しかし、それがオープンソースへの理解を深める一助になれば、ある程度は許されるのではなかろうか。

CNET Japanのエキスパートの視点という連載 コラムに、国立情報学研究所の佐藤一郎氏がオープンソースの理想と現実と題する記事が掲載されている(元は例によって経済産業研究所(RIETI)コラムのようである)。オ ープンソースが必ずしも利他動機で運営されているとは限らないことを指摘する など、筆者が以前「オープンソースの定義」の意義で展開したのと同趣旨の内 容も含まれており、評価できる部分もあるのだが、残念ながら残りの部分には単 純な誤解が多く含まれているように思う。

6月4日分の氏の 日記によると問題の記事について「内容的に物議になりそう」とあるので、 何か釣られているような気がしないでもないのだが、氏の文章のおか しい部分は典型的な誤解を網羅しているという点である意味得がたいものだ。そこ で、批判というほどのものではないが、この場を借りて氏の記事を肴に思うとこ ろをいろいろ書いてみようと思う。なお意味内容を損なわないよう配慮して記事 本文から引用したつもりだが、文脈をゆがめるような引用があればどしどし指摘 していただきたい。また、もちろん佐藤氏個人を攻撃する意図はない。

手はじめに

冒頭の一文がやはり気になるのである。

オープンソースに関する議論が活発に行われているが、オープンソ ースの当事者であるプログラマからの発言は少なかったように思われる。そこで、 ここではオープンソースの開発・公開にかかわる立場から見たオープンソース、 特にその問題点を議論していきたい。

まず前半だが、筆者が思うに話は逆だ。今までは、「オープンソース」など ということに関心を持つのはプログラマかその周辺の人々に限られていた。ゆえ に、スラッシュドットやウェブ日記などで 展開された議論も、参加者の大多数は、そういった「当事者であるプログラマ」 だったと考えるのが自然だろう。一連の議論は(外部としての)ユーザの 誤解を当事者たるプログラマが解く、というような単純な話ではなく、そもそも オープンソースに関わるプログラマの中でさえ意見が一致していないという点が 最大の問題だったのである。もちろん、「オープンソースオープンソースとガタガタ騒ぐようなやつは真のプログラマとは言えない」というようなことであれば恐れ入るが、筆者個人としては、ただプログラミングができるだけの人は今後は便利に使い捨てにされるだけの「ソルジャー」にしかなれないのではないかと思っている。

ちなみに、最近になって、GNU/Linux関連の報道などを通じて一般の人もようやく「オープンソース」という語に接するようになった。そもそもソースをいじった ことの無い人に、「ソースが公開されている」ということのありがたみを説明し て理解してもらうのは至難の業だが、それに加えて、ソースがある条件の下で自由 に利用できるということの長所をきちんと理解してもらうとなるとほとんど絶望 的である。しかし、オープンソースは、ユーザがきちんとオープンソースの優れ た点(あるいは逆に短所)を評価して判断してくれないと、独り立ちした持続可能 なプロセスとはなり得ないと筆者は思うのだ。漠然と「ユーザ」と書いているが、た とえばここに「官公庁」を代入してやると分かりやすいだろうか。

ゆえに、プログラマのみならず、エンドユーザに加え、まつもとゆきひろ氏 の言葉を借りれば「中間層」たるオープンソースソフトウェアを利用した営利企 業や公共機関に対し、オープンソースには「タダである」とか「ソースが公開され ている」という以上の意味があることをちゃんと理解してもらうにはどうしたら よいか、というのが最近の筆者の問題意識である。よって、プログラマは言うに及ばず、むしろプログラマ以外の人の会話の中で、「オープンソース」という語が(もちろん正しい意味で)頻繁に登場し、いわば当たり前の言葉になること、そして彼らがもっとオープンソースについて発言すること、それが筆者の希望だ。このような記事がオープンソースに関する関心や理解を高める一助になればよいのだが。

ちなみに蛇足ながら、「オープンソースの開発・公開にかかわる立場」とあるが、一応 事実として、氏が公開しているソフトウェアのライセンスは 評価用・教育用などに用途を限定しているという点でオープンソースの定義 に準拠していないということは指摘しておきたい。

ところで、いきなり話が脱線するが、氏のウェ ブページには

AgentSpaceとMobileSpacesの公開を近々止める予定です。JDKのイ ンストール方法や環境変数とは何かなどの当方が関知しない質問が非常に多く、 これ以上を公開を続けることは困難と判断しました。ながらくのご利用ありがと うございます。

という一文があって、同情を禁じえなかった。この手の悩みというのはオー プンソースの開発者、特にプロジェクトを運営する側の人間としては常に抱えて いるものだと思うが、この種の問題への筆者の処方箋は簡単で、「答えたくないものには答えない」という のが一番よいのではないかと思う。オープンソースは別に利他主義でもなんでも ないのだから、答えたくないものには答えなければよい。そういったメールがた まって気分が悪ければ、SpamAssassinなどで目に入る前に消してしまえばよいだけのことだ。マーケティングの世界でも、厄介ばかり 持ち込む一番まずいタイプの顧客(「鉛」層と言ったりする)には丁重にお引取り願うのがよいと教えられる所以である。

といっても、あまりユーザをないがしろにすると普及もせず、下手をすると 悪評すら立ってしまう。こうなるとオープンソースによるバザール開発のメリッ トまで享受できなくなってしまうわけだが、こういったときに重要なのは、「楽をするために苦労する」という一見矛盾したポリシーである。Debian周辺では「堕落するために努力する」などと言うこともあるが、同じことだ。

MLを設置したり、ウェブサイトを整備したりというのは本来面倒くさいこと である。ましてやドキュメントを整備したり、共同メンテナを選定したりするのは、めんどくさがりの筆者などにはほとんど悪夢としか思えない。しかし、ある程度の設備さえ用意しておけば、トリビアルな質問等に関 してはユーザ間の相互扶助に期待することができるし、開発の負荷は共同メンテナと分け合うことができる。ドキュメントを整備しておけば、何度も同じことを説明しなくて済む(読まない奴もいるが)。少なくとも、作者に直接飛 んでくるメールは減る。パッチは極力upstreamレベルでマージするというのも、 この話の延長線上にある話だ。このように、「楽をするための努力」は、オープンソース の世界では怠ってはならないというのが、筆者や筆者の周辺が、ほとんど 痛みを持って学んだことである。

さて、

なお、オープンソースはそもそも開発したプログラムのソースコー ドを公開することを意味していたが、最近はインターネット上で公開されたソー スプログラムを通じて世界規模で共同開発することを指すことが多くなっており、 ここではそれにならい開発手法としてオープンソースを議論する。

とあるが、「『オープンソース』という用語は『オープンソースの定義』が 登場する以前から『ソースがオープン』という意味で使われていた」という主張 は以前の議論でも繰り返し聞かれた。たいていの場合、これを根拠に「だから『オープンソース』を俺流の定義で使って何が悪い」という話に持っていこうとするのだが、筆者は寡聞にしてOSDが登場した1997年 より前に「オープンソース」という用語がソフトウェアの世界で使われていたと いう例を知らない。ご存知の方はぜひご一報いただきたい。アメリカの報道関係の隠語として、「情報源が公開」という意味で「オープンソース」という語が使われていたという話は聞いたことがあるが。

また、ここでの佐藤氏のように「オープンソース」を「ソースがある条件の下で公開されている」という状態を示す意味と、バザールによるソフトウェア開発モデルの一種という開発のプロセスを示す意味の両方で使うのは、誤解を招く元である。この点に関しては、後でもう一度述べる機会があるだろう。

ここからがいわば本題なのだが、長くなるのでなんと次回に続くのである。