概略とこれまでの動向

Google社が開催する Summer of Code (サマー・オブ・コード)は、オープンソース・フリーソフトウェアの開発に入門する世界中の学生を支援するという大がかりなイベントである。毎年夏休みに行われるこのプロジェクトも今年で4回目を迎え、過去のSummer of Codeの成果が実際に反映されるにつれて、学生参加が開発に果たす役割が再認識されている。今年はさらに多くのプロジェクトが採用され、その内容もコンパイラの機能追加からLiveCDの作成やゲームのマップエディタの開発まで、多岐に渡っている。まもなくはじまる学生応募の受付を前に、今年の傾向と印象的なプロジェクトについて紹介し、オープンソース・フリーソフトウェア振興や日本からの発信についても考えた。

Summer of Codeでは、まず3月に学生を指導する組織(メンター組織)の募集が行われ、Googleが選んだメンター組織が発表されると次に学生からの参加申込受付が始まる。そして5月から8月にかけてオンラインでの指導が実施され、9月に成果物が公開される。各組織に採用された学生は、現役バリバリの開発者をつかまえて指導を受けられるだけでなく、自分の書いたコードが実際に使われる(かも)、オープンソース・フリーソフトウェアで収入を得るという貴重な体験を得ることができる(課題を達成した学生には奨学金として合計4,500ドルが支給される)。

本記事の執筆時点では、メンター組織として500以上の応募の中から過去最大の175団体が採択されている(Googleのブログ記事「Meet Your Mentors」参照)。そして学生の参加受付は3月24日～31日(日本時間では3月25日～31日)に行われる。その間に、学生はWebアプリケーションの応募フォームを埋めてプロポーザルを提出し、各メンター組織による選考を待つことになる。詳しい手順については、Google公式サイト(英語)の他に、国内ではFSIJ(特定非営利活動法人フリーソフトウェアイニシアティブ)によるSummer of Code 紹介ページがまとまった情報を提供している(筆者も執筆に参加している)。

注目のプロジェクト

以下では採択された175のメンター組織から、筆者が注目したものを紹介したい。ただしひとつの組織が複数の異なるソフトウェアについて募集していることもある。また現時点ではまだ課題を公開していない組織もあるため、関心を持たれた方はGoogle公式サイトにて各組織の募集内容を確認していただきたい。

今年の特色: 仮想世界、ゲームの増加

Summer of Codeの募集テーマの中にはその年の世相を反映したテーマがある。必ずしもそのテーマで採択される学生がいるとは限らないのだが、たとえば2006年の宇宙探査、2007年のオンライン選挙監視システムの募集が個人的には印象に残っている。では2008年はどうか。私見では、今年はゲームや仮想世界に関連したプロジェクトが増加しているのが目にとまった。

昨年「セカンドライフ」が国内でも注目されたLinden Labが参加し、これまでにもSummer of Codeでゲーム開発を募集してきたOne Laptop per Child(OLPC)の募集案にSimCity開発が加わった(過去記事「初代SimCityがオープンソースのMicropolisとして復活」参照)。ほかにも、Battle for Wesnoth、BZFlag、Crystal Space、ScummVM 、Thousand Parsec、WorldForgeといった数々のオープンソース・フリーソフトウェアのゲーム・仮想世界のプロジェクトがメンター団体として採択されている。その内容もゲームエンジン、ゲームAIからマップエディタまで幅広い。

さらにゲームだけでなくムービー、オーディオ関連のホビーユース全般まで視野を広げると、サウンドエディタ(Audacity)から合成画像ツール(panotools)からストリーミング(GStreamer)、メディアセンターPC(XBMC)といったシステムまでさらに多くの選択肢がある。

OSからアプリケーションまで

OS開発者コミュニティではGNU/Linux、BSD系のポピュラーなディストリビューションに並んで、MINIX 3、GNU Hurd、さらに任天堂で研究システムとしてはじまったES(募集サイトでは学生向けに教科書まで紹介している)もSummer of Codeに参加している。また言語処理系も Perl、PHP、PHP、Python、Ruby、Squeak、Tcl/Tk、haskell、Lisp、C#(Mono)、C++0x、GNU Smalltalk と数多くの開発コミュニティが参加して豊富な選択肢をそろえている。

オープンソース・フリーソフトウェアとして知名度があるのはやはり各種アプリケーションだろう。Apache、Wine、X.org、Mozilla、MySQL、PostgreSQL、GIMP、FFmpeg、GNOME、KDEといった普及が進んでいるアプリケーションの開発コミュニティも学生参加を募集している。大学生の中には、GNU Emacs、Vim、R、TeX が不可欠のツールになっている人もいるかと思う。「実際に世の中を支えているソフトウェアで仕事をしたい!」と考えている学生は、こうしたアプリケーションの募集に注目していくとよいだろう。またウェブサイト構築方面では、Drupal、Geeklog、Joomla!、Plone、PostNuke、WordPress といったコンテンツ管理システムや、Wikimedia などの Wikiシステム、Galleryなどの写真共有システムがエントリーしており、ウェブデザイン分野を志望する学生にはこちらもお薦めしたい。

メンター組織に注目する

次にメンター組織に注目してみると、よく知られた団体の名前がいくつか見つかる。スポンサーであるGoogleはもちろんのこと、コンテンツサービス系ではCreative Commons、Internet Archive、イギリス国営放送の技術開発部門BBC Researchなどが参加している。また100ドルPCで有名になったOne Laptop per Child(OLPC)、ネット上での発言の自由を守る電子フロンティア財団(EFF)も連続してSummer of Codeに採択されている。

最先端の研究機関に進みたいと考えている大学生には、メンター組織の中でもNCSAやNESCentといったアメリカの国立研究所や、アメリカの次世代インターネット研究開発コンソーシアム「Internet2」やミシガン大学複雑系研究センターといった第一線の研究機関の募集に興味を持つだろう。採択された研究機関はアメリカだけに限定されず、イギリスの研究機関の連合あるOMII(Open Middleware Infrastructure Institute)も参加している。また研究機関だけでなく、オレゴン州立大学とポートランド州立大学といった教育機関も名を連ねている。両大学はオープンソース・フリーソフトウェア支援で寄付を集め、大規模な施設とカリキュラムを整備したので(過去記事「オープンソース界に多大な貢献をするオレゴン州立大のホスティングサービス」および過去記事「オレゴン州の2大学にGoogleからお返し」参照)、メンターの指導手法にも期待できる。

応用分野

専門家向けに開発された応用ソフトウェア分野でも、数多くのメンター組織が学生を募集している。専門課程に進んでいる学生は、自分の専門分野で使いこむソフトウェアを見つけることができるかもしれない。以下、目についたメンター組織をあげてみる。

GenMAPP(バイオ情報処理)

Swarm(複雑系シミュレーション)

NESCent(進化系統情報学)

OpenMRS(医療ソフトウェア)

Globus Alliance(GRID)

Freenet、GNUnet、Tor(P2P、日本から開発に参加するは法的リスクに注意)

Sahana(災害情報)

RTEMS(組込み開発)

OpenStreetMap、OSGeo、NCSA (地理情報)

Nmap/Umix、OpenNMS、OSVDB(セキュリティ)

DSpace、Moodle、OLAT、Sakai、Tux4Kids (教育支援、e-learning)

Natural User Interface Group(タッチインタフェース)

この他にもクラスタリング、CAD、インターネットメッセンジャー、モバイル、住基カード、BIOS関連など数多くのメンター組織が参加している。よくさがせば興味を引く分野がみつかるだろう。

Summer of Codeにみるオープンソース・フリーソフトウェア振興

Googleの姿勢

Summer of Code 2008 に採択されたメンター組織が増えたことで募集範囲も広がったが、この広大な範囲にGoogleが出資する意義や効果はどこにあるのだろうか。Summer of Codeの特徴を考える上で、まずSummer of Codeと夏休みのプログラミングコンテストやサマーインターンシップとの違いについて述べたい。

一般的に、企業による学生プログラミングコンテストはその企業のPRやリクルートと結びついており、自社製品の利用が必須だったり、成果の外部発表には会社の承認を要求される、といった制約がある。また応募条件も厳しい(Google本社でのサマーインターンシップではコンピュータサイエンス系の修士、博士課程に在籍することが応募条件になっている)。しかし Summer of Code では、成果公開においても募集においても制約が非常に少ない。成果の評価についてはGoogleではなく各メンター組織が行い、成果物のコードもオープンソース・フリーソフトウェアのライセンスで公開されるためにGoogleが権利を主張できない。募集条件も、コードを書けて海外送金を受け取れるならば、どの国の学生が応募してもいい(ただし留学生の場合、Googleからのお金を受け取れるビザが必要)。また18歳以上という年齢上の制約さえクリアすれば、コンピュータ科学を専攻していなくても応募できる。つまり美大生や短大生でも応募可能だし、専門学校や通信制大学に通う学生でも応募できる。

これはなかなか真似できない大胆な試みで、もしも政府が同じようなことやって結果がでなければ(たとえば国内産業への就職に結びつかなかったり、海外からの申込ばかり採択されたり、替え玉受験が判明したり等々)、税金の無駄づかいとして批判されただろう。その点でGoogleは一国の政府ができないような人材育成を民間企業のフットワークの軽さを生かしてうまくやっている。Summer of Codeでゲームや音楽プログラムが開発されても、それはGoogleの業務内容とは結びつかず、スポンサーであるGooeleに直接利益をもたらすことはない。だが、オープンソース・フリーソフトウェアを活用するGoogleにとって、コミュニティ(ソフトウェアを生みだすエコシステム)の発展は結果的にGoogleのサービスの品質に反映される(と言われている。くわしくはSummer of CodeのFAQを参照)。あるいは多くのベンチャー企業を買収するGoogleにとっては、将来のベンチャー企業人材に対する先行投資として考えることもできるだろう。Google創立者の提案からはじまったと言われるSummer of Codeは、コミュニティの力を借りて価値をつくりだし、他社が容易に真似できない規模に到達するという点でGoogleの独自性が出ているプロジェクトだと言える。

オープンソース・フリーソフトウェアを支援する手法に注目した場合、開発コミュニティを重視したGoogleの柔軟な運営姿勢も注目に値する。はじめは小規模なサイズからはじまったSummer of Codeは、毎年柔軟にシステムを変えてきた。それは Google Map、Google Code、Google Earthとの連携といったインフラ面の改善だけではない。たとえばメンター組織が発表されてから学生が応募内容を申し込むまでの時間を多く取れるようにスケジュールが変更されたが、これは参加者からの要望を反映させたものである。具体的には、GoogleはGoogle Summer of Code Mentor Summitを毎年開催し、世界各地からメンター組織・統括組織の代表を招いてフィードバックを得ている。その内容は非公開だが、招待されたメンターの感想ではテーマ設定の段階からコミュニティの声を反映させた熱心な議論が交わされたようだ。普通のスポンサーではここまでコミュニティを主体とした運営は行えないだろう。また、開始1年目にGNU Projectが「オープンソース」のプロジェクトには加担しないと表明したこともあった。するとGoogleはオープンソース・ソフトウェアという看板を"open source、free software"という表現に統一し、翌年からGNU ProjectはSummer of Codeへの参加を表明。最古参のGNU Projectの参加したことで、さらに多くのプロジェクトが参加することになった。

統括組織・メンター組織の成長

Summer of Codeはコミュニティの構造にも変化をもたらしている。目立つ変化としては、統括組織(umbrella organization)の活躍をあげることができるだろう。一般的にオープンソース・フリーソフトウェア開発組織の多くは事務処理のリソースを持たず、海外送金をうけとったり税務署に申告したりといった手順に慣れていない。そこで開発者コミュニティの手続きの窓口や受け皿をつとめる統括組織(umbrella organization)の出番となる。たとえばMercurial(分散バージョン管理システム)などのコミュニティはSoftware Freedom Conservancyの傘下で参加しているが、これは法人化していないプロジェクトに各種サービスを提供する受け皿としてSoftware Freedom Law Centerがはじめたプログラムである(「過去記事「FOSSプロジェクトを法の庇護下に置くSoftware Freedom Law Center」参照)。他にもPerl FoundationがPerl本体のみならず数々のモジュールやCatalyst、Jifty、RTといった関連プロジェクトをまとめた窓口となっているし、研究方面ではシンギュラリティー研究所がAI(人工知能)関連のプロジェクトの窓口をつとめている。そして日本のFSIJもメンターの参加と提案とを募集している。

個々の開発コミュニティが出すアイデアリストも改善されている印象を受ける．必要とされるスキルや難易度、あるいは開発動機をつけるといった教育的な配慮を多く見かけるようになった。こうしてSummer of Codeをきっかけとしたエコシステムは毎年発展しており、今後はGoogleの傘の外でもシステムが動くかどうかが問われることになるだろう。(Googleもコミュニティが依存体質になることは望んでいないらしく、Summer of Codeが次の年も必ず開かれるとは公言しないし、2月になるまで予告も行わなかった。)

日本における課題

最後に日本における取り組みについて触れておきたい。かつて日本のオープンソース・フリーソフトウェアを担う層を調査比較したところ、欧米よりも平均年齢が高く、現役学生の割合も少ないという結果がでた(過去記事「FLOSS-JP：オープンソース/フリーソフトウェア開発者調査結果概要」参照)。おそらく現在ではコミュニティの平均年齢はさらに上昇しているのではないか。またSummer of Code 2007のGoogle Earthによる参加者表示が公開されているが、地球全体における日本周辺における参加者の存在感は少ない。これらのことから、日本周辺からの学生参加がこれから増える余地は大いにあると考えられる。

しかし、これまでは英語での申込や日本の学年暦との兼ね合いが学生参加の障壁になって、日本人メンターが登録しても海外の学生を指導することの方が多かった(コミュニケーション言語の問題は申込前に学生がメンター組織に相談・確認することが可能である)。今年はGoogleが日本語で情報交換できるディスカッションリストも設置し、FSIJも具体的なモデルスケジュールを公開している。なお、FSIJによれば事前に希望者からコンタクトがあれば、4月前半に都内でFSIJが開催する開発イベント「CodeFest Week」に参加できる場合もあるとのことである。今年の募集では学生の開発参加の障壁は確実に低くなっており、学生がオープンソース・フリーソフトウェアを自ら世界に発信する文化が促進されることを期待したい。

著者について: 山根 信二 (Shinji Yamane)はセキュリティ研究に従事しつつ、Open Tech Press に記事を寄稿している。CPSR、FSIJ会員。共著書に『Internet Ethics』(2000)、「情報社会を理解するためのキーワード20」(東浩紀『情報環境論集 東浩紀コレクションS』所収、2007)など。