次期Androidはどうなる?
Android 4.4KitKatで試験的に搭載された仮想マシンの「ART」が、次回リリースされるAndroid OSで標準になる可能性があります。これは、オープンソース版Androidのマスターブランチで、ARTがデフォルトになったことをXDA Developersが見つけたのが話の発端です。
Android 4.4 KitKatのリリースが2013年10月31日です。
今日まで、十分な試験データが得られたのか、2008年9月から続いたDalvikの引退時期が迫っているのは間違いなさそうです。さて、仮想マシンがARTに切り替わることにより、同じハードウェアでもアプリが速く・効率的に動作するようになります。また、CPUの動作率自体が下がるために、バッテリー駆動時間も長くなるとされています。
動作速度に関しては、Android 4.4 KitKatがリリースされた時に、Nexus 7を使って計測したベンチマーク結果があるので、これが参考になります。
Quadrant Standard(値が大きいほど高速)は以下のとおりです。
NDKでコアロジックが書かれたアプリは、誤差程度の違いしか出ませんが、Javaで書かれたアプリであれば動作が速くなるのは明確です。この理由は、実行時にコンパイルする仕組みから、事前にコンパイルする仕組みになったことで、広範囲に渡り最適化が行えるようになったためです。DalvikからARTへの切り替えは、開発者・ユーザーともに、負担を強いるような変更ではなく、高速化とバッテリー駆動時間の改善の恩恵を受けられるので、切り替えは喜ばしい話です。まだ、正式発表はありませんが、Google I/Oでなんらかアナウンスがあるかもしれません。
新しい開発言語も登場するのか?
WWDCで、AppleがObjective-Cに変わる、新たな開発言語としてSwiftを発表しました。仮想マシンの切り替えが一段落したら、Androidも新たな開発言語が登場してくる可能性があるのでは?と考えさせられるニュースがありました。
ニュース自体は、少し古いものですが、新たな言語が登場する可能性を考える理由は、OracleとのJava言語をめぐる裁判で「米国法においてはJava APIの著作権がOracleに存在する」との判決が下されたためです。この判決が下されたのは、2014年5月9日なので、すぐさま動きがあるとも思えません。Oracleに、ライセンス料を支払い、しばらくはJavaを使い続けると思われますが、問題をかかえたまま、Javaを使い続けることはないだろうと考えています。
かつて、Microsoftは、Visual J++というのを独自のJava言語を開発していました。
Oracleが買収したSunと裁判になったことがキッカケで、Microsoftは、C#を登場させることになりました。
Googleも今回の判決をキッカケにして、Android向けに、新たな開発言語を登場させる可能性はあります。Googleが持っている開発言語といえば、「Go」や「Dart」があります。Dartは、少しライトな言語なので、Javaの代替となるならばGoでしょうか。これが、Androidの開発言語となれば、イッキにメインストリームに踊り出すことになります。
開発言語は、Androidのエコシステム構築に直接は関係しませんが、大きな影響力を持っているのは事実です。開発言語が変われば、開発者は新たなノウハウの蓄積が必要になります。開発言語を使いこなすまでには時間がかかり、質の良いアプリが登場するまでには時間が必要になります。また、開発者から支持を失うことになれば、魅力的なアプリが登場しなくなる可能性もあります。よって、他者の意図に左右されない、Google自身がコントロールできる開発言語を持つことは、今後もAndroidのアプリを安心して開発し続けてもらうための保証とも言えます。
判決が下されたのが1ヵ月前なので、今月末に開催されるGoogle I/Oでは、明確なメッセージを示すことはないはずです。また、開発言語の移行となれば、既存のライブラリの移行やアプリの書き換えなどがあり、開発者には負担を強いることになり、慎重に進める必要があります。この先の舵取りは、Java問題をGoogleがどう捉えているかにかかっていますが、筆者自身は、Javaは、潮時なのではないかと感じています。来年のGoogle I/Oでは、新しい開発言語が話題になっている可能性は十分にあるはずです。
今週は、このあたりで。また、来週。