オープンソースプロジェクトを最初から英語で運営してみてわかったメリットについて

僕は最近とあるオープンソースプロジェクトをオーナーとしていわば運営しているのですが、英語でプロジェクトをまわすというのは良いなと思うようになりました。他の言語を使うのに何も悪いことはないのですが、英語のほうがコミュニティがずっと大きいので想定外の幸運なことが起こる可能性が高くなるというのが理由です。

僕がやっているプロジェクトは開発ツールを作るというもので、それなりに専門的な知識が必要になるプロジェクトです。人間が書いたプログラムのコードは最終的に何らかの形でコンピュータが直接実行可能な形に変換されて実行されるわけですが、僕が作っているリンカというのは最後の実行ファイルを作成する部分を担当するプログラムです。つまり僕はプログラムを出力するプログラムを書いているわけで、そのためにはOSやCPU、入力や出力のファイルの形式などについてよく知っている必要があります。

また僕らの目標は既存のものよりずっと速いリンカを書くことなので、高速なプログラムを書くにはどうしたらよいかをよく理解している必要があります。

ソフトウェアエンジニアリングというのは良くも悪くも英語圏が中心なので、こういうことに詳しい人の数は英語圏のほうがずっと多いです。

このプロジェクトはLLVM(というコンパイラ・インフラストラクチャ)のサブプロジェクトとして始まったので、最初からすべてのやり取りは英語でした。元々別の人によるやりかけのコードがあったんですが、その上でしばらく作業したあとで、そのアーキテクチャでは限界があるというのでメーリングリストでいろいろ議論した結果、僕が去年仕切りなおしてもう一度最初からやり直すことになりました。

それで最初は僕はWindows用のリンカを作ったんですが、これの出来がよいということで、別の人が僕に特に相談なくLinuxに移植してしまいました。いきなり想定外のいいことが起こったわけです。僕としてはこれは歓迎なのでそちらの開発もなし崩し的にとりかかることになったんですが、その後どんどんパッチ(修正や機能追加のコード)が送られてくるようになりました。

今の段階では、Sonyから全体的な機能追加、ARM(先日ソフトバンクに買収されることが決まった)の関連の会社からARMプロセッサのサポート、長年MIPSプロセッサのサポートに取り組んでいる人(たぶんMIPSを作っている会社に雇用されている)からMIPSサポート、アルゴンヌ国立研究所からPowerPCプロセッサのサポート(動機がよくわからないんですがスパコンで使いたいんでしょうか?)、誰かに雇われていると思うけどなぜ取り組んでくれているのかよくわからないロシアの開発者から各種機能のサポート、IntelのエンジニアからIntelが推進している機能のサポート、などが追加されています。1つだけパッチを書いてくれた人はもっとたくさんいます。

FreeBSDというOSは僕らの作っているものをOS標準の開発環境にすることにしてくれました。ChromeやFirefoxもこれを使って実行ファイルを生成したいということで試用したりしています。Unixの開発環境の標準になるという、うっすら思っていた大きな野望が、ある程度はあっさり実現してしまいそうです。

で、なぜ短期間でこんなに貢献してくれる人が来てくれたんだろう? と思ったんですが、やっぱりこれは「いいものを作っている」だけではなく「開発が盛り上がっているように見える」からだと思うんですよね。親近感といってもよいと思います。

メーリングリストで活発に議論して、コードをどんどんやり取りして、そういうやり取りの中で僕らの作っているものが以前のものに比べてどれくらい速くなっているのかということが触れられていて、ということをやっていると、他の人たちに嫌でも僕らの活動がよく目に入るわけです。プロダクトの雰囲気もなんとなく伝わってくるので、「なんかこの人たちが作っているものはよさそうだ」となると、「じゃあ試してみるか」とか「自分の入れたい機能もちょっと作ってみるか」というふうになってきます。開発が盛り上がっているように見えると人が来るので開発がより盛り上がるという正のフィードバックが働きます。

もし別の言語で開発をしていて、完成物だけが英語のドキュメントつきでGitHubやどこかに置かれていたとしたら、こんなふうには多くの人が来てくれなかった思います。いいものというのは、ただネットに置いてあるだけでは驚くほど誰にも発見してもらえないものです。他の言語で議論している場合、他の人達にとっては「完成物だけ置かれている状態」と似たようなものなので、なにがすごいのかあまりピンと来ないし、自分たちとは関係のないものと思ってしまうので、なかなか試してみようという感じにはなりません。

他の人を巻き込んでいくには、同じ場で同じ言語を使って完成にいたるまでの議論や試行錯誤も見えるようにして、内心応援しているとか、興味を持って眺めているという人を地道に増やしていくのが良いのでしょう。実際にやってみると、どこから来て何のために取り組んでくれているのかわからない人が続々登場してきて、英語圏での人材の豊富さにびっくりします。まあどうしてもここに人が集まってきているので当然なのかもしれませんけどね。

というわけで、予想がつく良いことと予想がつかない良いことの2種類があると、後者というのはやってみるまでは(定義上)知りようがないので、つい前者にばかり注目しがちですが、未知の良いことが思いがけず降ってくる確率を上げたいのなら英語圏で始めてみることにメリットは多いと思います。

2016-07-26
Rui Ueyama (Twitter / Facebook)

28
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。