前回の連載記事では、マイクロソフトが「Build 2016」で示したアプリ開発者への取り組みを紹介しました。

その翌週には、グーグルがAndroidのアプリ開発において、iOSと同じ「Swift」の採用を検討しているという、米The Next Webの報道が話題になりました。

いま、Androidのアプリ開発ではJavaを用いることが当たり前になっています。果たしてそんなことが実現する可能性はあるのか、これまでの動きを振り返りながら予想してみましょう。

Java APIの著作権が認められ、フェアユースが争点に

この問題の背景には、オラクルがJavaの著作権侵害についてグーグルを訴えている、2010年から続いている訴訟があります。Androidのアプリ開発ではJavaを用いていますが、実行時には仮想マシンとして「Dalvik VM」を使ってきました（Android 4.4からはネイティブコードを実行できる「ART」を搭載）。

これに対してオラクルは、グーグルがJavaのAPIをコピーしたと主張。2015年にはその主張が認められたものの、グーグルは米国の著作権法が定める著作物の公正利用「フェアユース」にあたると主張しており、これが今後の争点になっています。

オラクルは著作権侵害に加え、Androidの成功でグーグルが不正に得たとする利益を含む93億ドル（約1兆円）を要求したとされており、「悪の帝国」的なイメージもつき始めています。一方、グーグルもJavaについてオラクル（あるいはオラクルが2009年に買収したサン・マイクロシステムズ）との権利関係をクリアにしておらず、脇が甘かったのではないか、との指摘もあります。

オープンソース化で勢いに乗るSwift

この大型訴訟の行方が注目される中、新情報として出てきたのが、「Swift」検討の話です。

Swift登場以前、iOSのアプリ開発では、古くさくて難解な「Objective-C」が使われてきました。iPhone上での自由なアプリ開発が可能になったときでも、筆者は「こんな言語が広く普及するとはとても思えない」という印象を持っていました。

これに対してSwiftは現代的な言語として設計されており、これまでのObjective-Cを完全に置き換えたわけではないものの、アプリ開発の敷居を大きく下げたといえます。

さらにアップルは2015年12月にSwiftをオープンソース化し、GitHubに公開しています。

Swiftを利用する開発者は急増しているとはいえ、まだまだメジャーな言語とはいえません。いくらオープンソース化しても、iOS以外に活用する方法があまりないからです。しかし、モバイル市場で最大シェアを持つグーグルが採用すれば、アプリ開発の標準言語として一気に普及する可能性も見えてきます。

Swiftを含むマルチ言語対応にも期待

仮にAndroidがSwiftを採用しても、iOSとはAPIが異なるため、両方で動くアプリを作れるわけではありません。しかしiOSとAndroidで共有できる部品を作りやすくなり、ソースコードをコピー＆ペーストで流用できる場面は増えそうです。

気になるのは、Swift採用の「リスク」です。Apacheライセンスに従えばSwiftは誰もが改変したり再配布したりできるとはいえ、アップルの出方は気になるところ。アップルがオラクルに取って代わる、という事態は絶対に避けたいものです。

こうしたリスクを避けるならば、グーグル自身が開発した「Go」や「Dart」といった言語もあるものの、あまり普及していないのが現状です。

マイクロソフトの「C#」はどうでしょうか。C#は言語仕様が標準化されており、誰でもC#を用いたプラットフォームを構築できます。さらに最近のマイクロソフトはオープンソースやマルチプラットフォームに積極的で、一昔前では考えられなかったことも実現する時代になっています。

現在は世界中のAndroidアプリ開発者がJavaを使っていることから、当面はJavaのサポートをやめることはできないでしょう。しかし言語の選択肢を増やすことで、徐々にJavaへの依存を減らしていくという方向性は考えられます。5月に予定されているグーグルの開発者イベント「Google I/O 2016」で何らかの言及があるか、注目したいところです。