Kotlin(コトリン)がAndroidアプリの公式開発言語になったけど、JavaよりもKotlinを勉強すべきか?

この記事は約8分で読めます。

2017年5月17日に行われた Google I/O で、Kotlin(コトリン)をAndroidアプリの開発言語としてサポートすると公式に発表しました。

TechCrunch | Startup and Technology News
TechCrunch | Reporting on the business of technology, startups, venture capital funding, and Silicon Valley

Android のネイティブアプリを開発するための統合開発環境である Android Studio では、次世代のリビジョン v3.0.0 で Kotlin のサポートがデフォルトになるようです。(2017年4月時点のリビジョンは v2.3.2

2017-12-14 追記

2017年10月25日に「Android Studio 3.0」がリリースされました。

「Android Studio 3.0」では、既存のAndroid開発言語やランタイムとの相互運用が可能なプログラミング言語・Kotlinが正式にサポートされており、コード補完や構文の強調表示などエディタ機能にも対応している。

引用CodeZine 「Android Studio 3.0」がリリース、Kotlinでの開発を正式にサポート

結論から言うと、Kotlinを勉強すべきです。

JavaよりもKotlinを勉強した方が良いと考える理由を以下に説明します。

Kotlin(コトリン)とは?

「そもそも Kotlin なんていう言語、聞いたことないよ!」

というあなたのために、ざっくりと Kotlin について説明します。

一言でいうと

Javaが進化して便利な機能が沢山使えるようになった言語。」

って感じに理解しとけば良いと思います。

Android 開発者
適当なこと言いやがって!もっと詳しく教えてくれよ!

というあなたは

プログラマに優しい現実指向JVM言語 Kotlin入門を読んでみて下さい。

気になる人
Kotlinってなかなかええやん。

ってなると思います。

開発元はジェットブレインズ社(JetBrains)

Kotlin は、統合開発環境「IntelliJ IDEA」で有名なジェットブレインズ社(JetBrains)が開発した言語です。

お馴染みの Android Studio も「IntelliJ IDEA」をベースにAndroid 開発に最適化されたものです。

これらの関連から Google は Kotlin をAndroidアプリの公式な開発言語に選定したものと思われます。

そうなると今後、Googleに買収されてKotlinの方向性が変わってしまうのではないかと危惧してしまいますが、そんなことはない。

と以下の公式ブログで発表しています。

Kotlin on Android、オフィシャルに | Post Blog
本日、Google I/OのキーノートにてAndroidチームはKotlinの公式サポートを発表いたしました。これはKotlinにとって大きな一歩であり、Androidデベロッパにとって、そしてJetBrainsツールファンにとって素晴らし...

Kotlinが流行る理由

Javaは1996年に正式バージョンである 1.0 がリリースされ、現在も世界中で利用されている優秀な言語です。

一昔前は処理が遅いとか、UIがショボいとか散々言われてきましたが、今となっては改善されJava技術者は重宝される時代となりました。

しかし後方互換性を維持(下位バージョンをサポート)するために、Java は流行りの便利な言語仕様が取り入れにくいという課題があります。

その点、Kotlinは2012年にApacheライセンス バージョン2.0に基づいてオープンソース化された新しい言語です。

魅力的な言語仕様

以下のような魅力的な言語仕様を兼ね備えています。

上記特徴の中でも「Java との完全な互換性」が特に魅力的だと考えます。

Java との完全な互換性

基本的に新しい言語を利用する場合、今まで利用していた言語(今回のケースではJavaが該当)のソースは使えなくなります。

今まで開発&リリースしてきたアプリがJavaで作られていた場合、作り直す(移植する)必要があります。

しかし、Kotlinなら作り直す必要がありません。

Kotlin から Java を呼び出すことができ、Java から Kotlin を呼び出すこともできます。

なんと Java で作ったクラスを継承した Kotlin のクラスを作成することもできます。

このように既存のソースが流用できるなら、より便利な機能が盛りだくさんのKotlinを使わない理由はありません

Android 開発者
どうしてそんなことができるの?

確かに、不思議ですよね。

それは、Kotlin が JVM言語だから可能なことなのです。

JVM言語

JVM とは、Java virtual machine の略称で Java仮想マシンのことです。Java VM とも呼ばれます。

Windows や Linux、Mac のような OS に依存せず、JVM が存在するプラットフォームならば Java を動かすことが可能です。

Java を動かすと言っても、正確には Java をコンパイルして出力される Javaバイトコード を動作させます。

JVM言語とは、コンパイルすると Java のバイトコードを出力する言語のことです。

Kotlin は JVM言語なので、コンパイルすると Java のバイトコードを出力します。

だから Java が動作する環境なら Kotlin も動作させることができるんですね。

JVM言語について、もっと詳しく知りたいならば以下サイトのスライドショーがオススメです。

Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係 - Download as a PDF or view online for free

JVM言語の歴史から仕組みまで、分かりやすく解説されています。

Javascriptとして利用可能

2017-12-14 追記

2017年11月29日にKotlin 1.2がリリースされました。

Kotlin 1.1では、KotlinコードをJSへコンパイルしてブラウザで動かせるようになってましたが、Kotlin 1.2ではKotlinコードをJVMとJavaScript双方で共用できるようになりました。

これは Kotlin で書いたソースが、バックエンド、フロントエンド、Androidといった複数のプラットフォーム向けのバイナリとしてビルドできることを意味します。

個人的な感想としてXamarin(ザマリン)の仕組みと似たような感じでしょうか。

Xamarin(ザマリン)の仕組みが知りたければ、以下の記事がとても分かりやすく解説していますのでおススメです。

Xamarin(ザマリン) とはなんぞや - Qiita
【2017年9月時点の情報で更新しました。】Xamarin(ザマリンと読みます) とはなんぞや、個人開発者として使う時にどうなるの、的な事をさらっと書いてみようと思います。Xamarin は 2…

Kotlinのデメリット

現状は日本語で Kotlin を説明しているサイトは少ないです。

開発中に悩んだり、困ったときに頼るのはインターネットの情報です。

この点は開発者にとって大きなデメリットだと考えます。

今後、Kotlin が流行っていけば、このデメリットは解消されるでしょう。

まとめ

要点を纏めておきます。

  • Kotlin が Androidアプリの公式開発言語になった。
  • Kotlin は 静的型付けのオブジェクト指向プログラミング言語。
  • Kotlin は JVM言語でJavaと100%の互換性がある。
  • Kotlin は クロージャとラムダ式が使える。
  • Kotlin は トレイト(trait)が使える。
  • Kotlin は Swiftと構文が似ている。(iOSの開発でも活かせる)
  • Kotlin のデメリットは、ネット上に日本語の情報が少ない。
  • Javascript としてバイナリを作ることもできる。
  • 2017年プログラミング言語アワードに Kotlin が選ばれそう。

Kotlinを使うことによって生産性と品質を格段に向上させることが期待できそうです。

近い将来、Kotlinを使いこなす技術者は重宝されることになるでしょう。

2017-12-14 追記

2017年12月のTIOBE Programming Community Indexによると、2017年プログラミング言語アワード候補(対象となるプログラミング言語がどれだけ話題になっているか)は C と Kotlin になるだろうと書かれています。

C言語は IoT(モノのインターネット) が流行っていて、そのメイン開発言語。

Kotlin は Android の公式言語となったためでしょう。

この情報からも分かる通り Kotlin の未来は明るいですね。

以上、『Kotlin(コトリン)がAndroidアプリの公式開発言語になったけど、JavaよりもKotlinを勉強すべきか?』についての考察でした。

The following two tabs change content below.
会社員Shira
IT系の会社員。1978年生まれ。個人開発でAndroidのアプリをリリース、総ダウンロード数は100万くらい。36歳で初めての転職、未経験のweb業界にもちょっと慣れてきました。

コメント

タイトルとURLをコピーしました