中田真秀(なかたまほ)のブログ

研究について、日常について、その他。

研究者向け:あなたの書いている研究用のコードをオープンソースにするのは、あなたに利益が多い。

2011-10-29 13:37:21 | 日記
昨日ある研究者と議論していて、自分が(も)書いているコードをオープンソースにするかどうか、迷っているといわれた。私は利益が多いと思っている。以下に研究用のパッケージコードはオープンソースにすべきだという理由を挙げてみる。

* 研究者は税金で養われているので広く社会に還元すべきだということ。
今後、10年20年の単位で考えると、研究者の研究はコンピュータを非常に高度に、複雑に使い、簡単には再現出来なくなってくるだろう。ありえないだろうが、もし、今後、研究者のコードの商用性が主流に成るならば、税金の使い道として、特定の利益者に与する研究者に税金を支払う機会は減ってくるだろうと思われる。従って、優秀なプログラムをオープンソースで書き、リリースできる研究者は社会に還元し、社会にあらゆる意味で役に立っている、分かりやすいシグナルを発している訳で、当然より生き残りやすくなると考える。

* あなたの研究が、より信頼性の高い研究と認知される。
高度にコンピュータを使うと、再現も困難になると上で指摘したが、再現が困難な研究の信頼性はどのように担保すべきなのだろうか。オープンソースならば、再現してもらえる可能性は非常に高くなるし、その上で、同じ結果がだせるのであれば、信頼性が高い研究と第三者が認知出来る。また、あなたのプログラムにはバグがないのだろうか。バグがあるからよい結果として見えているだけかもしれない。他人に試してもらう機会はオープンソースだとぐっと増える。

* 必要なお金はファンドの充実やユーザーサポートで賄うことができること。
ファンドは充実してきたし研究実績としても扱えるので、お金を細かく稼ぐより効率が良くなる可能性も高い。さらに近年ソフトウェアの価格は下がってきたので、ソフトウェア自身で稼ぐのは難しくなるだろう。実際、これらはユーザーサポートなどで金銭的なフィードバックを得て開発費などにあてている(Apple storeなどをみよ)。

* 研究に関して広くフィードバックを受けられること。 
 フィードバックは意外と様々な分野の人から受けられる。それはアカデミックの分野にとどまらず、産学民から国を超えて様々なフィードバックがくる。世界中のいろんなところに優秀な人はいる。確かにライセンス契約をすると、自分の目の届く範囲で密なフィードバックを得られるが、そこで広がる人間関係は限られる。全く違った分野から、全く気づきもしなかったより良いフィードバックは、オープンソースにした方が機会が増えるため、得やすい。上とも関連があるが、バグも指摘してもらえる。自分の経験からも明らか。

* 自分の名前を売ることができること。
サポートメーリングリストを立ち上げるのは普通だが、そこで開発者である研究者が直接対応することで、自分の名前を売ることができるようになること。これは研究者だと当然ありがたいことである。
よくあることだが、偉い教授の下で開発していると研究者コミュニティでは実際の開発者である助教、ポスドクだと名前を売りにくい。だが、偉い人たちは今度は時間もなくメーリングリストなどで議論出来る時間も限られるし、開発からはなれるに従って議論もできなくなる。実際にサポートされた側は意外とよく、実際に開発している人の名前を覚えている。

* 転職に有利。
(上に続けて)名前が売れたら当然であろう。

* 長く続けられる可能性がでること。
 企業にいると、倒産したり、買収されたり、転職したりすると、自分が開発したにもかかわらずコードの開発ができなくなることがある(特に困るのは、権利関係がうやむやになることだろう)。しかしオープンソースならばその可能性を消すこともできる。sourceforgeなどにコードを置き、オープンにすることでどのように人生の転機を迎えても自分の意志のみで開発を続けることができる可能性が高い。

* 後継者が見つかるかもしれない。
 後継者問題はどの世でも問題である。ただオープンソースだと様々な立場で参加出来る可能性があるため、参加者もより多くなるだろう。従って、後継者を見つける可能性は増える。後はあなたの人徳次第となる。

* 友達が増える。
 オープンソースに限らないが、開発していると、学会などで全く知らない人から「使ってます、ありがとうございます」といってもらえることがある。それをきっかけに友達が世界中にできる可能性がある。オープンソースだと商用ソフトより名前も出やすく、利用者も多いので、その機会はより多くなるだろう。

以下はオープンソースにするリスクに関する疑問とそれに対しての答えを考えてみる。

* 盗用されないか?
商用だとしても、もし、ソースコードを限定的に開示していても、盗用される時はされる。オープンソースならば盗用されやすいか、というと、この質問にあまり意味がないということがわかる。コードのプライオリティや著作権の問題はソースコード管理用のログなどでクリア出来る。

* 自分のコードをもとにして、別プロジェクトが立ち上がるのではないか。
 開発している人は自分のプログラムが盗用されたらすぐ分かるものである。従って、全くの第三者があなたのコードをもとにして別プロジェクトをさも、じぶんがやったことのようにして立ち上げるとすぐわかるだろう。これを心配する気持ちはよく理解するが、ただ、やはり偽物は偽物で、それ以上、超えてコードを書くようになるのはかなり難しい。また、そうならなければ、別プロジェクトは、あなたのプロジェクトのサブプロジェクト程度しか認識されないであろう。人はアクティブなところにあつまり、アクティブなプロジェクトを信頼する。ただそれだけである。自分自身のモチベーションが切れないかぎり、別プロジェクトはマイナーなフォークと見られるだけである。

* オープンソースは死んだプロジェクトが多い。自分のプロジェクトも死ぬのではないか。
あなたが生きていてそのプロジェクトへの情熱を失わない限り、プロジェクトは死なない。死ぬはずもない。これはオープンソースだろうがそうでなかろうが、関係はない。

* ライセンスの設定をどうしていいか分からない。
 アプリだとLGPLやGPLが適当だと思う。ライブラリ系だとより緩い2-条項 BSDがいいと思われる。

* 誰かに何も断られず使われるかもしれない。
 それは仕方ない。逆に、あなたもたくさんのオープンソースのプログラムを使っているだろう。それに対して断りを入れたことはあるか。感謝の言葉を一言でもいったことがあるか。寄付したことはあるか。ある人間があなたのプログラムを使って引用しないならば逆にメールを送って引用してくれといえばいい。ここら辺は相手の人間性の話になるだろう。あまり変な人とは付き合わない方がいい。自分の経験では、そこまで変な人は逆に認知されていくし、人間社会って結構犯罪少ないでしょう?それは人間はそれぞれ大変信頼しながら生きているということに他ならない。善意を信頼していただきたい。

* 自分のプログラムが役に立つとは思えない。
 まぁそういわないで自信を持とう。意外とあなたのプログラムを必要としてくれる人はいる。

私の感覚としては、むしろ、今後はオープンソースプロジェクトでより「有用な」プログラムを書くのは誰かという指標が出てくるのではないかと見ている...厳しい戦いは続くはず。

私はオープンソース化をとても応援します。

他にも疑問質問などあればコメント欄にどうぞ。

最新の画像もっと見る

コメントを投稿