SwiftはAndroidに対応か!?夢のマルチプラットフォーム化へ
iPhoneアプリを作成するのに現在主流となっている言語、「Swift」、そんなSwiftがAndroidアプリ開発にも使用出来るようになるのではないか?とのニュースが流れています。このSwiftのニュースを遡るとオラクルとの問題が挙げられます。
オラクルとの訴訟問題
事の発端は2010年8月、オラクルがグーグルを著作権侵害で訴えます。
オラクルが買収した会社が開発したJavaプラットフォーム「Java ME」があらゆる携帯電話には搭載されており、オラクルはそのプラットフォームを使用している会社から収入を得る立場にありました。
しかし、Androidにはこのプラットフォームは採用されておらず、グーグルが独自に開発した仮想空間である、「Dalvik VM」が採用されました。アプリ開発でJava言語や多くのAPIを活用しているにもかかわらず、オラクルは、プラットフォームが使用されていないために、収入を得られないという状況に。これを不服と感じたオラクルはJavaのAPIをグーグルがコピーして使用している、つまり著作権侵害で訴え、一時はオラクルの主張が認められました。しかし、グーグルはこれを「フェアユース」に該当すると主張し、現在も裁判は続いておりグーグルはオラクルから、多額の賠償金を請求されている状況になっています。
Swiftの台頭
Swiftは、IOSアプリケーションおよびMacOS-Xアプリケーション開発において、Object-Cに変わる言語として、2014年6月に登場しました。客観的に見て、古臭い文法だった Object-Cに比べて、Swiftの新しい、スタイリッシュな文法がプログラマー内に広まっていきどんどん使用者数を伸ばしていきました。
Swiftは前述の通りIOSアプリケーションおよびMacOS-Xアプリケーション開発で使用する言語です。Swiftがオープンソース化された時期、グーグル、Facebook、Uberの関係者が、Swiftに関する会議を開催した事を伝える記事が掲載されました。グーグルは一級開発言語として、Swiftを採用する可能性があるといわれています。
今後のSwiftの展望について
Swiftは2015年12月にオープンソース化され、勢いに乗り、どんどん利用者が増えていっています。しかし用途がIOSアプリケーション開発のみに縛られてしまうために、まだまだ使用しやすい言語とは言い難い状況となっています。今後もしグーグルが開発言語に採用するとすれば、一気にシェアを獲得することができます。もし、採用したとしても、現在Javaでアプリケーションを開発していることを考えると、Javaへのサポートは打ち切られず、徐々にSwiftへと変化していく事が予想されます。またAPIが異なるためにそのまま、コピー&ペーストで開発できるとは考えにくいと言われています。
その他の言語について
Swiftだけではなくその他な言語についても考えて見たいと思います。
まずグーグルが開発した「Go」が挙げられます。グーグルが開発しているため、Swiftを一級言語に採用するより、労力が必要ないように感じられますが、いかんせん、プログラマーに受け入れらておらず、可能性は低いと思われます。
またマルチプラットフォーム化として一番に考えられるのが、有名なゲームエンジン「Unity」で採用されている「C#」、「cocos2d-x」で採用されている「C++」でしょうか。C++については、AndroidNDKやObject-C++への互換性はあるものの、独特な記法や記述の多さなどがネックになり、採用される可能性は低いと思われます。また、「C#」については、開発元のマイクロソフトが、オープンソース化に積極的、また、AndroidNDKやIOSとの互換性もあります。記述も比較的簡単である為、可能性はあるのではないかと考えられます。
このように、Swiftを取り巻く環境は今日急激に変化しています。
マルチプラットフォーム化は開発者にとってのメリットがとても大きく是非期待したいところです。