掲載日時: 2007-11-22 16:00

独自のJavaを使用するグーグル「Android」で広がる波紋

Java分断化の懸念をよそ目に、さらなるパフォーマンスの改善とオープン化の実現をめざして重要な一歩を踏み出したグーグル。業界団体を通さずに独自のJavaを使用する、その先には何が見えてくるのだろうか。

著者 : 文:Stephen Shankland(CNET News.com) 翻訳校正:アークコミュニケーションズ、瀧野恒子、國分真人

URL : https://japan.zdnet.com/article/20361032/

 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版のみであり、携帯電話等のデバイスで使用するモバイル版ではない。

 AndroidのエンジニアリングディレクターであるSteve Horowitz氏は次のように語っている。「我々のチームにはJavaコミュニティーで精力的に活動しているメンバーが参加している。彼らが情報を提供し、助言を与えてくれたおかげで、AndroidをJavaコミュニティーの人々になじみのあるものにすることができた」

分断化が加速するか?

 しかしそれよりも大きな問題がある。Googleの取り組みは、すでに分断化されているJavaの世界をさらに悪化させると考えられるからである。Javaは本来、「write once, run anywhere(一度書いたプログラムはあらゆるプラットフォーム上で実行可能)」のはずである。しかし実際には、すべての携帯電話が同じJava規格に準拠しているわけではない。そのためプログラマーは、自分が作ったソフトウェアが多様なデバイス上で動作するかどうかを確認することができない。

 「GoogleはJavaを使っているが、よく知られているJavaフレームワークは実装していない。実際には、サポートしなければならない別の規格を作り出しているにすぎない。これはつまり、市場をさらに分断化させてしまう可能性があるということだ」。Trolltechの最高技術責任者(CTO)であるBenoit Schillings氏は、CNETの編集者Maggie Reardonにこのように語ったという。Trolltechは、PC上または携帯電話上で使用するソフトウェアを開発するプログラマーのために、各種のツールやコンポーネントを販売している企業である。

 携帯電話向けに動画ストリーミングを提供するMovidityの最高経営責任者(CEO)、Mauro Lollo氏もGoogleの取り組みに同様の見方をしている。「要するに彼らは、別の規格を作り出した。規格を作るのはいいことだが、問題は数が多すぎる」(Lollo氏)

 Googleはオープンソースソフトウェアに共通するリスクも抱えている。オープンであるということは、プログラマーがそれぞれ別の、互換性のない方向に「枝分かれ」したプロジェクトを立ち上げられるということを意味する(実際のところ、Sunが最終的にJavaをオープンソースソフトウェアとするのを躊躇した理由の1つはこれである)。「最後には、互換性のないAndroid技術のバージョンが20種類作られるという事態もありうる。なぜなら、誰でも使用許諾を得て修正を加え、別のバリエーションを作れるからだ」(Schillings氏)

 Sunとしては、モバイルデバイスでJavaやオープンソースソフトウェアを使用することは支持しているが、Googleのアライアンスに参加することについては懸念を表明した。「我々はGoogleエコシステムの一員であることに関心を持っている。しかし同時に、このプログラムがどのような事態を引き起こすかについて見きわめることにも関心を持っている」。Sunのソフトウェア部門担当エグゼクティブバイスプレジデント、Rich Green氏はこのように発言している。

 Androidの取り組みとJava Community Processが統合される可能性はあるのか。この質問に対して、Horowitz氏は「オープンなアライアンスであり、参加したい者は誰でも歓迎する」と答えた。

Androidへの理解が進む

 技術をめぐる駆け引きはさておき、GoogleがAndroidに大きな望みを託しているのは明らかである。そしてGoogleは、部外者が開発に参加することを望んでいる。

 この点に関しては、AppleとGoogleは著しい対照を見せている。Appleは製品の出荷開始から半年後の2008年2月に、iPhone用ソフトウェア開発キット(SDK)をリリースする計画である。一方のGoogleは、Android携帯電話の出荷が開始されると予想される約1年前にSDKをリリースする。

 Horowitz氏は「我々はSDKをかなり早い時期に提供する。早ければ、まだ十分にソフトウェアの方向性に影響を与えることができる時点でフィードバックを得られるからだ」と語る。「通常は製品が完成するまでSDKを出荷したがらない。しかしAndroidの場合はプラットフォームが非常に重要だ。だから我々は、早い時期にSDKを発表したかった」という。

 もちろん、SDKの早期リリースには別の利点もある。オープンソースコミュニティーの力を借りれば、一連の基本プログラムの枠を超えるおもしろいアプリケーションをAndroidフォンのために構築できる。

 これまでのところは順調だと語るHorowitz氏は、Googleがオープンソースプロジェクトのサイト(code.google.com)でホスティングする他のプロジェクトと比べると、Androidには「これまでに見たことがないほど関心が集まっている」と指摘している。

 SDKに関する情報をいくつか紹介しておこう。

この記事は海外CNET Networks発のニュースをシーネットネットワークスジャパン編集部が日本向けに編集したものです。海外CNET Networksの記事へ

ZDNET Japanは、Ziff Davisからのライセンスに基づき株式会社4Xが運営しています。
ZDNET Japan is operated by 4X Corp under license from Ziff Davis.

Copyright © 2026 4X Corp, Inc. All rights reserved. No reproduction or republication without written permission.