Androidには新しい言語が必要か? Kotlin

GoogleやOracleのJava訴訟戦が長引き、人々はAndroidがJavaを捨ててしまうかもしれないという考えから代替言語が何があるかについて関心を持ち始めた。 Googleが作った言語であるGoを挙げる人もいたし、Google内でのGoをAndroidに使うという一部の動きもあったが、Javaにすでに存在する膨大な量のAPIとの互換性のために不可能だと話している。

Kotlin(コトリン)は、Scalaなどと同様にJava仮想マシン(JVM)言語になるJetBrainsが作った開発言語である。 言い換えれば、Kotlinをコンパイルすると、JVM上で動作するバイトコードを生成してくれる。 JetBrainsは最近開発者の間で大きな人気を集めているIntelliJシリーズ(Java、Python、Ruby、C、JavaScriptなど言語別にそれぞれ最適なIDEを提供)で有名な会社であり、最近はAndroid StudioがJetBrainsのIDEプラットフォーム上で製作され、さらに多く知られた。 したがって、ひとまずKotlinを書くときにIDEの心配はいらないというのが最初の長所だ。

記事の更新情報を受け取る

なぜKotlinなのか?

KotlinがAndroidのJava代替言語として脚光を浴びる理由の一つは、Javaと100%互換になるという点だ。 したがって、現在のAndroid APIをそのまま使用でき、すべてのJavaフレームワークを使うことができる。 また、AntやMaven、Gradleのようなビルドシステムを使用することができる。 以上のことからJavaからKotlinに移行する最も大きな壁を越えたと言える。 また、JavaコードをKotlinコードに変換するツールを提供している。

Kotlinがメリットとして掲げることの一つは、Null Pointer Exceptionから解放されるという点だ。 Kotlinの型システムはJavaの最もありふれたエラーのNull Pointer Exceptionから救ってくれる。 また、Javaのボイラープレートコードを減らし、簡潔なコードを作成できる文法を提供する。 getter/setterの煩わしさを減らし、関数をクラスの外で宣言することもできるなど利便性と自由度を与える。 関数型プログラミングの支援はもちろん、新しく作られた言語であるだけに、Javaで使いにくかった点が大きく改善された。 開発ツールではコマンドラインのコンパイラはもちろん、IntelliJまたはEclipseにKotlinプラグインをインストールして使用することもできる。

そして…

Kotlinは、Android専用言語ではない。 サーバサイドのソフトウェアを開発することや、JavaScriptにコンパイルしてブラウザ上で実行することもできる。

すぐにJavaから移行しないといけないか?

プログラミング環境というのは非常に敏感だ。 “Javaと100%互換”であるという言葉は、今日Androidを使う開発者がすぐに明日からKotlin文法だけ勉強すれば複雑な依存性とビルド環境が完璧に移行できるという意味ではない。 実際にAnnotation Processingをサポートしたばかりでまだ制約事項が残っており、ProGuardでも例外処理をしなければならないなど、実際の開発ではまだ手がかかるのは事実だ。 一つの言語が誕生する過程はその言語をめぐったエコシステムが成熟していく過程である。 これは関連ツールやライブラリ、ドキュメント、StackOverflowの質問が成熟しなければならず、関連する議論などを十分行わなければならないということだ。 Kotlinは急速に上記の段階を経ている言語である。

また、Kotlinはまだベータバージョンだ。 2015年7月現在v0.12で、2015年末にはv1.0をリリースすることを目標にしている。 Kotlinが初めて発表されたのは2011年で、ある程度以上の成熟度を持っているが、v1.0では言語や標準ライブラリ安定性が引き続き改善されるため、まだ大きなプロジェクトに適用するのは慎重にする必要がある。

Kotlinは追い風に乗っている

AppleがSwiftを通してより開発者に親しまれる文法の言語を提供しながら、引き続きコミュニティを発展させていて、GoogleもAndroidを長期的に眺めるならば内心はもっと簡単な文法と長所が多い言語の導入をすることで多くの開発者たちがAndroid開発をもっと早くて簡単にできるようにしたいだろう。 もちろん、Javaの特許問題も解決しての話だ。 AppleがSwiftを通してiOS開発者にさらになじむ文法と新たな機能を提供しようと努力するように、AndroidのエコシステムではKotlinがもっと速くて容易で安定した開発を助ける役割を果たせると期待してみる。 急速に成長する言語を使ってみるのは、面白いことだ。 Kotlinをすぐブラウザ上で実行して見ることができる。

`

Realm Korea

Realm Korea Team