グーグルのオープンソースは綱渡り--クリス・ディボナ氏インタビュー - (page 2)

文:Stephen Shankland 翻訳校正:石橋啓一郎2008年06月18日 08時00分

--外部のプロジェクトへの貢献と、内部の人たちの維持とのバランスをどう取っているのですか。

 Googleは一部のプロジェクトは他のものよりも重要だと考えています。明らかに、Linuxカーネルは非常に重要です。ユーザーはGoogleを使うたびに、Linuxカーネルを動かしているマシンを使っているわけです。Googleはかなり大きなカーネルチームを持っており、外部のカーネルに取り組む仕事だけをする従業員も雇っています。Andrew Morton氏がその良い例です。われわれは彼らが可能な限りパッチを公表する(オープンソースプロジェクトに修正を投稿する)できるようにしています。これが行えるかどうかは、通常はわれわれが望んでいるかということよりも、そのエンジニアに十分な時間があるかどうかが問題になります。私はGoogleがもっと多くのコードをリリースできればいいと考えているのですが、それにはエンジニアに時間が必要です。活動が大きいほど、それに関わる人数は多くなるため、リリースは少しは容易になります。

 コンパイラ(プログラマが書いたコードをコンピュータが理解できる命令に変換するソフトウェア)についても同じです。われわれのコンパイラチームの素晴らしいところは、仕事としてパッチを公開していることです。彼らは内部で作成したコンパイラに関するパッチを常に外部に公表しています。われわれは最近、新しいリンカであるGoldをリリースしました。Ian Lance Taylor氏がわれわれのコンパイラチームで働いています。彼はずっとGCCチームで働いていました。彼は以前はCygnus(GCCを開発した会社)にいました。Googleには元Cygnusにいた従業員が多くいます。

 また、既存のプロジェクトにパッチをあてようとしているGoogleメンバーもいます。バグを見つけたり、機能を追加したりしたい場合です。これには時間はかかりません。われわれのチームは、エンジニアが投稿しようとする最初の2つのパッチを確認し、そのエンジニアが外の世界の理解していることを確認しますが、その後は基本的に自由に行っていいことにしています。彼らは自分がパッチを提供したものをわれわれに知らせてきます。われわれは、われわれのコードがなるべく早くプロジェクトに届くようにしたいと考えています。なぜなら、プロジェクトのバージョンが上がっていくからです。早くパッチを出さないと、古くなりすぎたり問題がなくなったりして反映されなくなります。内部でパッチを作成した場合、それを外に出すのが早いほどわれわれにとっては有利です。これは、そのプロジェクトがバージョンを上げて社内に戻ってきた時に、パッチを再適用する必要がないからです。

--Googleが取り入れている中でもっとも重要なオープンソースプロジェクトは何ですか。

 カーネル、コンパイラ、その中でもGCC、そしてPythonインタプリタです。Pythonはわれわれにとって非常に重要です。Google App Engineは基本的にPythonホスティングシステムです。Javaもわれわれにとって非常に重要であり、今ではオープンソースになっています。われわれには、Josh Block氏やNeil Gafter氏など何人か非常に優秀なJava専門家がおり、彼らはこの技術を非常に上手に扱います。

 コンパイラ、言語、カーネルの3つのプロジェクト以外では、次に重要なのはライブラリです。われわれの場合は、OpenSSL、zlib、PCREが重要です。またMySQLもわれわれにとっては大変重要です。それ以外については重要性は下がります。

--Javaのオープンソース化はGoogleにとって何か影響がありましたか。

 あまりありません。Googleの外への影響の方が大きかったと思います。Javaは今ではかなり成熟した言語になっています。われわれはJavaを長い間使っています。以前は、JCP(Javaの将来を決定する団体Java Community Process)がJavaに関するオープン性を確保していました。これまでも、それほどオープンでないということはなかったのです。Javaに関しては、特にJ2ME(Java's mobile edition for gadgets such as cell phones)とTCK(the technology compatibility kit)について、オープンソースにどういう意味があるのかを問う声が上っています。

CNET Japanの記事を毎朝メールでまとめ読み(無料)

-PR-企画特集

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]