Googleの日本法人にひとりの技術者が在籍している。日本の多くのWebサイトで使用されているオープンソース・ソフトウエアのオリジナル開発者であり,インターネットやWebサイトにかかわる技術者であれば誰でもそのソフトウエアの名前は知っているはずだ。彼がGoogleに移籍したと聞き,とても興味を覚えた。Googleにとってオープンソースとは何なのだろうか。また彼はなぜGoogleに参加したのだろうか。

 その彼に話を聞く機会があった。非常に興味深い話だったのだが,残念ながら「目立ちたくないので名前は出さないでほしい」ということなので,名前を伏せた形でこの場でご紹介させていただきたい。

オープンソースのヘビー・ユーザーで支援者

 Googleにとってオープンソースとは何か。まず,Googleは「オープンソース・ソフトウエアの凄まじくヘビーなユーザー」だ。

 Googleの心臓であるサーバー群。その数や所在地は明らかにされていないが,数千台とも数十万台とも言われるそのサーバー群はLinuxで動作している。Linuxはかなりカスタマイズされているのではないかと筆者は勝手に予想していたのだが,カーネルやファイル・システムにはほとんど手は入れられていないという。大規模な分散処理や分散ストレージは,カーネルより上のレベルで実現されているようだ。GoogleはLinuxのほか,オープンソースのコンパイラgccもよく使い込んでいる。

 またGoogleはオープンソース開発者に対する支援者でもある。

 Googleはいくつかのオープンソース・ソフトウエア・プロジェクトを運営し,コードを公開している。Google Codeと呼ぶサイトに同社が公開しているオープンソース・ソフトウエアやAPIの一覧があり,マルチ・スレッドC++プログラムのデバッグ・ツール「perftools」や,C++用のハッシュ・テーブル「sparsehashtable」などのプロジェクトが紹介されている。

 2005年には世界中の学生を対象に,オープンソース・ソフトウエアを開発するイベント「Summer of Code」を実施している(関連記事)。ApacheやAstarisk,Project Looking Glass,OpenOffice.org,Perl,Samba,Monoなど名だたるオープンソース・プロジェクトの開発者がメンターとなり,学生を指導している。数百人が参加してコードを書き上げた。その成果の発表には日本人の名前も見える。

 日本でもGoogleは特定非営利活動法人フリーソフトウェアイニシアティブが実施した「夏休みコード道場」と呼ぶプロジェクトに協賛している。Summer of Codeと同様,オープンソース・ソフトウエア(フリー・ソフトウエア)を開発する学生を支援するもので,2005年には3つのプロジェクトを支援した。

 Googleは教育機関への支援にも積極的だ。米国のポートランド州立大学とオレゴン州立大学のオープンソースに関する取り組みを支援するために,35万ドルを寄付している(関連記事)。両大学はこの資金をもとに,2006年にオープンソース技術センターとオープンソースを推進する団体を設立する予定だ。

 Googleがオープンソース・ソフトウエアを支援する理由は2つある。ひとつは,プロジェクトを支援することで優れた技術者を発掘し,採用するきっかけになると期待していること。もうひとつの理由は,オープンソース・ソフトウエアの機能や品質が向上することが,オープンソース・ソフトウエアのユーザーであるGoogleにとってメリットになると考えているためだという。

ブラックボックスが存在しないシステム

 「ウェブ進化論」の著者である梅田望夫氏は,Googleを「垂直統合型のコンピュータ会社」であると指摘している(梅田望夫氏インタビュー)。Googleはインターネット・サービスの会社ではなくメーカー。Googleが作っているものはサービスではなくコンピュータだと喝破する。Googleは,第一世代のIBM,第二世代のMicrosoftに続く,コンピュータ産業第三世代の中心だ,と。

 コンピュータ産業で垂直統合型と言えば,誰しも思い浮かべるのはIBMだ。IBMは半導体プロセスから半導体設計,基盤,OS,基本ソフトウエアまで全て自社で作った。しかし,現在のコンピュータ産業は水平分業によって成り立っている。Intel,Microsoft,Dell,Oracleといった,別々の会社が開発した製品を組み合わせてシステムを作る。

 垂直統合モデルが水平分業モデルに取って代わられたのは,コンピュータ産業の成熟に伴い要求されるようになったコストと開発スピードに,垂直統合モデルが追随できなくなったからだ。しかし,水平分業モデルは大幅なコスト削減を可能にしたが,システムの中にいくつものブラックボックスを抱え込むことになった。そのため,OSやミドルウエアの障害に直面した際に,ユーザーはその原因を突き止めて修復する手段を持たない。メーカーのサポートに連絡して対応を待つよりない。

 そして第三世代であるGoogleは,再び垂直統合型モデルによりコンピュータを作り上げたと梅田氏は言う。検索エンジンや分散処理システムや分散ファイル・システムなど,彼らは自分たちでそのシステムを作り上げた。しかし,単純な垂直統合型への先祖帰りではない。そのべースにオープンソース・ソフトウエアがある。外部で作られたソフトウエアでありながら,そのソースコードは全て開示されており,ブラックボックスは存在しない。完全にコントロールできる。実際に,GoogleはLinuxなどのバグを修正し,パッチをコミュニティに提供している。

 つまり,垂直統合と水平分業のいいとこ取りだ。梅田氏の言う第三世代のコンピュータ・メーカーは,そのようなモデルの上に形作られている。

世界中から優れた知恵を集めるために公開する

 とはいえ,Googleはオープンソースだけにこだわっているわけではない。

 Googleが公開したのはソースコードだけではなく,サービスを利用するためのAPIもある。むしろAPI公開のほうが大きな反響を呼んだ。検索や地図,GoogleデスクトップなどのAPIを公開しており,誰でも無料でGoogleのリソースを使ってサービスを作れるようになっている。実際にGoogle Mapsを使った店舗ガイドなどは,すでに多数作られている。記者が個人的に感心したのは,Google Mapsを使って実際のサーキットの地図上を走れるようにしたレーシング・ゲームだ。

 Googleがやろうとしていることは「世界中の優秀な頭脳を集め,化学反応を起こして,誰も見たことがないようなイノベーションを作り出す」ことなのだろう。そのためにオープンソースという手段をとることもあるし,API公開という手段をとることもある。

 「公開すれば,誰かがこれを使って,我々が思いつかなかったような面白いことをやってくれるかもしれない」---Googleはそう考えるのだという。多くの優秀な技術者を集めながらなお,自らのリソースを解放することで,Googleは世界中から優れた知恵を集めようとしている。

「論文よりも直接社会に貢献できる」

 さて,冒頭で紹介したオープンソース開発者はなぜGoogleに入社したのだろうか。彼は独立行政法人の研究所に在籍していた。いかにGoogleが技術者の自主性を重んじるとは言え,営利企業に比べれば,研究所のほうが自由にソフトウエアを作れるはずだ。

 彼の答えはこうだ。「Googleのサーバー群を使うことができるからだ」。Googleの膨大なサーバー群。その分散システム・インフラの上に載る高度なソフトウエアを開発し,世界中で使ってもらうことができるようになる。論文を書くよりももっと速く,ダイレクトに,かつ大規模に社会の進歩に貢献できるかもしれない。

 もうひとつの理由は,Googleに集まっていた優秀な頭脳から受ける刺激が大きな魅力だったことだという。もちろん研究所にも優秀な研究者はたくさんいるが,Googleにいる,論文よりもコードを書くことに喜びを見出す人々の存在が大きな魅力だったのではないだろうか。

 Googleはその株価や時価総額で注目されているが,資金を集めること以上に,頭脳を集めることを重視し,そのために必要なことを実行している。ソフトウエアにおいてイノベーションのボトルネックとなるのは資本ではなく人間の頭脳だと信じているようだ。頭脳を集めるために必要なのは,リソースを公開すること,やりたいことを実現できる場,そしてコミュニティ。これこそ,成功したオープンソース・ソフトウエアが備えている条件にほかならない。