Googleの「Android」ソフトウェアでは、主役はSun MicrosystemsのJava技術である。ただし、使用するJavaは携帯電話業界で1990年代から開発されてきたバージョンではない。
代わりに、Googleは独自路線を歩みだした。めざすのは「Open Handset Alliance(OHA)」の携帯電話に使用するソフトウェアのパフォーマンスを改善し、さらなるオープン化を実現することである。プログラマーにとっては、考慮しなければならない新たなJavaの変種が登場することになる。その負担増加に対する多少の埋め合わせとしてだろうか、Googleは賞金総額1000万ドルのアプリケーション開発コンテストを開催し、開発者を引き込む構えである。
相違点の1つには、「Dalvik」と呼ばれる独自のコアJavaバーチャルマシン(JVM)技術をGoogleが開発したことがあげられる。このソフトウェアは、Androidフォン上で実際にJavaプログラムを実行する。Googleによれば、このDalvikを使えば携帯電話という厳しい制約を伴うハードウェア上でも、Javaプログラムを高速に動作させることができるという。これまでにも自社開発したJVMを使う例はあったが、Googleは今回、それよりもはるかに重要な一歩を踏み出した。つまりAndroidは、Javaの新機能開発を監督するためにSunが1999年に設立したJava Community Process(JCP)のプロセスを経たものではない。
JCPは新機能をアプリケーションプログラミングインターフェース(API)として体系化することにより、Javaを管理している。そのため、プログラマーは標準的な方法を利用してBluetooth対応機能や3Dグラフィックスなどの新技術を使うことができる。しかしJavaをめぐる既存の枠組みの中では、GoogleがAndroidでは重要であると考えている自由な開発を実現させる要素が整っていない。
「我々はさまざまな方法でプラットフォームをオープンにしたいと考えた」と語るのは、GoogleでAndroidプロジェクトを担当するシニアスタッフエンジニア、Mike Cleron氏である。「開発者の誰もが非常にきめの細かいレベルで、Androidエクスペリエンスのひとつひとつを交換して使えるようにするというのが我々の発想だ。既存のAPIでは、我々がAndroidで実現したいと考えているレベルのオープンさを実現できない」(Cleron氏)
GoogleがJavaをめぐって孤立した状態に入るつもりのないことにも注意すべきである。たとえばOHAパートナーの1社であるMotorolaは携帯デバイス用Javaの開発を支援しており、GoogleはJavaプログラミング経験を開発者に身近なものにしておきたいと考えている。そしてGoogleは、JCPの執行役員会メンバーである。ただし、対象となるのはPC上やサーバ上で稼動するStandard版とEnterprise版のみであり、携帯電話等のデバイスで使用するモバイル版ではない。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス