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

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

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

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

手はじめに

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

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

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

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

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

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

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

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

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

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

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

さて、

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

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

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

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

投稿者: mhatta

A rapidly-aging old-school geek in Japan.