「日本政府はさっさとオープンソース振興から手を引いてしまえ」――VA Linux佐渡氏 (1/2) - ITmedia エンタープライズ

またまた、佐渡さんの記事に対してです。前回は、GPLv3関連について書きましたので、今回は日本政府によるオープンソース振興の是非について論じられている部分に対し、私の意見を書こうと思います。私は、政府のOSS支援は必要という立場です。

OSSコミュニティに向いた開発ネタとそうでないもの

まずあげたいのは、ソフトウェアというのはソースさえ公開されていれば、みんなハッピー、誰でも使えますというものではなく、Linux Distributionの様に、たくさんあるソフトウェアコンポーネントをパッケージ化して、使いやすい形にしてはじめて普及すると考えられ、そのパッケージに含まれるコンポーネントの中にはOSS開発コミュニティでの開発に向いたネタとそうでないものがあるという点です。
例えば、Kernelなどは全員が全員、"just for fun!"と叫んで開発に参加しているかどうかは知りませんが、技術的に楽しいとか売るのに必要な機能が足りないとか、いろいろな理由で開発者を集めやすいネタです。
一方、文字フォントとか仮名漢字変換エンジン向けの辞書なんかは、コミュニティに開発を任せても、なかなか進まないものです。アルファベットのように文字数のすくないフォントならともかく、日本語のクオリティの高いフォントというのは、ごく数人のデザイナーが膨大な作業をこなして初めて完成する芸術品です。それを無償提供せよといっても、そりゃー無理でしょう。
しかし、Debianのようにフリーのコンポーネントだけを集めてパッケージ化しようとした場合、フリーの文字フォントや辞書は必要不可欠です。このような、OSS普及には必要不可欠だが、OSS開発コミュニティには不向きなコンポーネントに、政府がお金をだすというのはOSS振興策として、非常に重要だと思います。

OSSで儲けるのは難しい

2番目として、OSSで儲けると言うことは非常に難しいということです。最大手のLinux Distributor 2社やMysqlなど、OSS開発を直接利益に結びつけることに成功している会社もあるにはありますが、Red Hatにしても最初の7年間は赤字を垂れ流して自社distributionを普及させた後、ビジネス向け市場にアプリケーションの動作保証という、ネットワークの外部性のようなものを梃子にして儲ける体制を築きあげましたが、こうしたモデルがどんなOSSにでも適用可能というわけではないですし、「OSSで儲けるビジネスモデルを描けないなら、OSSをやる資格無し!」と、切り捨ててしまうのも酷な話だと思います。アメリカの様にJob Mobilityの高い社会では、それも有りなんでしょうが、日本でそれを言ったところで、既にOSS業界で名をあげている人ならともかく、大学生や大学を出て数年というような若い技術者をOSSの世界に引き込むことができない、ひいてはOSS開発者層が広がらないという話になっちゃうんじゃないかと心配しております。

現在の振興策で良いか

ええと、これについては部分的に関係者なので、大きな声では言いづらいんですが(笑
IPA未踏ソフトウェア創造事業は、良い線いっていると思います。未踏はOSSに限った事業では無いですが、OSSのスタートアップのためのfoundingとしては悪くないと思います。
しかし、未踏だけやってればOKかというと、そうでもないでしょう。OSSというのは、一気に半年、一年で開発して公開したら一段落それで終わりというものもあるでしょうが、何年もかけて育てていくタイプのものも多いです。未踏はこういったタイプのOSSのfoundingには向いていません。
では、未踏ではないOSS推進なんちゃらのなんとか基盤なんとか(わかりにくい表現で申し訳ない)とかの振興策はどうなのか?金額に見合った成果が出ているのか?と言われると、(検閲)としか言いようがありませんorz
upstreamに取り込まれたとか、upstreamの開発者の間で話題になり、開発に貢献しているとかそういったことが全然ありませんから、お金かけて作った割に、OSS開発コミュニティにはなんの貢献にもなっていないわけです。
どうして、こんな事になっちゃうかというと、(OSS振興に限ったことではないですが)、未踏以外の振興事業って基本的にwaterfall型開発モデルを基本にしていて、予算確保の段階でかなりきっちりと設計しなければいけませんし、途中で方針転換するのは非常に難しい(できなくはないですが、膨大な書類仕事と関係各位へのネゴシエーションが必要でとてもやる気がおきない)のが原因の一つです。OSS開発に携わったことがある人ならわかると思いますが、ほとんどのOSSはインクリメンタルな開発モデルをとっており、方針転換も日常茶飯時、patch投げて議論して、改良して、またpatch投げるというのを繰り返します。このやり方は、ロードマップが描きにくいというデメリットもあるにはありますが、世界中の開発者からフィードバックを得ながら進めていくことになるため、自分たちの開発グループでは見落としていた新しい知見が得られるなど、メリットのほうが圧倒的に大きいですし、これこそがOSSをやる醍醐味といっても良いと思います。
ところが、ロードマップを描けないというデメリットはそのまま、振興予算を確保するとupstreamが当初の計画を受け入れてくれるかさっぱり解らないというリスクになりますので、勢い、out of treeなところに開発ネタを見つけざるを得なくなり、upstreamにはなんら影響力を持たないものができがちです。まあ、それだけでなく開発に携わっている人たちのマインドという部分もありますが。

では、どんな振興策なら良いか

というような難しいこと聞かれても、すぐに答えがでるものではないですが、既にある程度の実績を持ったコミュニティの運営者や上級開発者を雇用するOSDLの様なNPOに、お金をいれてOSS開発者の食い扶持を確保してあげるというのは、アイデアとしてどうでしょう?(注)いまのOSDL-Jに政府がお金をいれろと、言っているのではありません。
ある程度、実績がある開発者への保護だけになっちゃいますが、コミュニティの上級開発者になればなるほど、企業に雇用されていたりすると所属組織の意向との関係を勘ぐられたりして、やりにくかったりするんじゃ無かろうかと想像するのですが。
もっとも、それなりに名の通った開発者であれば、Job Mobilityは個人的な実力で確保できちゃうと思いますので、あまり解決策になっていないかもしれませんね。

というわけで、私なりのOSS振興に対する意見を書いてみました。id:hyoshiokhttp://d.hatena.ne.jp/hyoshiok/20060216にも、恐る恐るトラックバックしてみます。
土器土器。