2009年5月5日火曜日

GoolgeのJavaサポートに思う

Google App EngineにJavaが登場(4/7)して少し時間がたった。
Googleのクラウド市場参入は昨年4月7日、最初のサポート言語はPythonだった。
それから丁度1年たった同じ日にJavaのサポートを発表したことになる。当時も今も、クラウドでは完全にAmazonに先を越されたGoogleにはやや焦りがある。AmazonはEC2とS3で完全なPaaSの世界を切り開き、ビジネスとしても成功してきた。

これに対しGoogleは、High Speed Computer利用を模索していたIBMと2007年10月、大規模インターネットシステムの課題を探る大学向けInitiativeを手掛けた。
このInitiativeにはWashingtonやCarnegie Mellon、Stanford、UC Berkeley、MITなどが参加し、仮想化のXenや分散処理インフラのAppche Hadoop、さらにGoogle File Systemなどを適用したものであった。Googleから見ればAmazonはInternetの専門家ではなく、競合として視界の中にはなかった気がする。それがあれよあれよという間にデベロッパーの支持をうけ、新しい文化として定着し始めた。この流れがまさかここまで大きな影響を持つとは考えていなかったに違いない。

昨年4月のApp Engineの発表は、デベロッパー向けのCampfireOne。
発表はあのPython CreatorのGuido van Rossum氏だ。ここシリコンバレーではPythonの人気は高い。Rossum氏は2005年からGoogleで働いているし、Java'VMの実装であるJythonのデベロッパーFrank Wierzbicki氏はSunにいる。Rossum氏からの発表は迫力があった。ただAmazonを追っての発表としては、もっと画期的なものが欲しかった。Amazonは数種類のサイズの異なる仮想マシンと多様なOSを提供して完全なPaaSとなっているだけに、Googleなら別な何かがあるだろう。それが一般的な期待だった。発表された内容は、周知のようにインフラ部分はデベロッパーから見えず、Webアプリケーションを作成するPythonと簡易データベースとなるDataStoreだ。しかし、冷静な話、これではAmazonのEC2でPythonでWebアプリケーションを開発するのとさしたる違いはない。App Engineならではの工夫が欲しかった。

そして、今回のJavaサポートである。
Javaによって、より多様なアプリケーションが開発できる。Javaには、GlassFishやOpenESBなど取り巻くソフトウェアが充実している。現に今回の発表では幾つか目に見える特徴があった。まず、Java 5と6に対応していること、Google Web Toolkitも1।6にあがってJava Runtimeと統合された。そしてEclipse IDEとの連携のためのGoogle Plugin for Eclipseもリリースされた。デベロッパーからみればJavaサポートはJVMで稼動するスクリプト言語のJRubyやGroovy、PHPなども実行できることを意味する。しかし、SunのChief Open Source OfficerのSimon Phipps氏は、今回のリリースはJavaクラスをフルサポートするのではなく、コアクラスを勝手に区分してサブセットを作り出し、Javaの理念(Once Write, Anywhere)に反すると不満を述べている。Google App EngineはJavaによってPythonから抜け出て一回り大きくなった。ただ、それでもAmazonのPaaSと比べて何処が魅力的なのか、Googleはその回答をデベロッパーに示さなくてはいけない。