MENU

Kotlin — Androidの公式言語へと駆け上ったJVM新世代

Kotlin アイキャッチ
Kotlin

Kotlinは、2011年にIntelliJ IDEAを開発するチェコ拠点のJetBrainsが発表したJVM言語です。サンクトペテルブルク近郊のコトリン島から名前が取られており、ScalaやGroovyを使う中で感じた「もう少し実用に振った言語が欲しい」というJetBrains社内の現場感覚から生まれました。2017年のGoogle I/Oで「AndroidアプリのファーストクラスサポートはKotlinで」と公式発表されたことが大きな転機となり、今日ではAndroid開発の主役を完全に引き継いでいます。本記事ではKotlinの設計思想と、Androidを超えた広がりについて解説します。

目次

この記事の目次

  1. Java資産を活かす実用主義
  2. JetBrains発、Android公式へ
  3. Androidの外でも広がるKotlin
  4. 他のJVM言語との立ち位置
  5. まとめ

Java資産を活かす実用主義

Java資産を活かす実用主義

Kotlinの最大の特徴は、Javaとの完全な相互運用性を維持したまま、Javaの長年の不満点を一つずつ潰した点にあります。NullPointerException(10億ドル級の失敗とTony Hoare本人が表現)に対して、Kotlinは型システムレベルでnullableかどうかを区別します。「String?」と「String」は別の型で、コンパイラが安全な呼び出しを強制します。data class一つでgetter/setter/equals/hashCode/toStringが自動生成される省力化も、Javaから移った人を驚かせる点です。

拡張関数(既存クラスに後付けでメソッドを足せる仕組み)、スマートキャスト(型チェック後の自動キャスト)、デフォルト引数、named arguments など、現代的な言語機能をひと通り備えながら、Javaコードと同じJARに混在させてもよいという柔軟さがあります。「明日からJavaプロジェクトの一部だけKotlin化する」というインクリメンタル導入が現実的で、それが企業導入のハードルを劇的に下げました。

JetBrains発、Android公式へ

JetBrains発、Android公式へ

Kotlinの開発は2010年にJetBrains社内で始まりました。きっかけはIntelliJ IDEA本体のコードベースで、「ScalaはコンパイルがJavaほど速くなく大規模プロジェクトに向かない、もっと現実的な言語が欲しい」という社内ニーズだったと、リードのAndrey Breslavは公開インタビューで語っています。2011年に公開され、2016年にバージョン1.0が出ました。

Android開発者にとって決定的だったのは2017年のGoogle I/Oです。GoogleはKotlinをAndroidアプリ開発の公式サポート言語に加えると発表し、2019年には「Kotlin First」(Kotlinを第一の推奨言語にする方針)を打ち出しました。新しいJetpack Composeも完全にKotlinベースで設計され、Java資産との橋渡しという当初のミッションを超えて、Androidネイティブ開発のデフォルトに据えられています。

Androidの外でも広がるKotlin

Androidの外でも広がるKotlin

Kotlinの活躍領域はもうAndroidに限定されません。サーバサイドではSpring Bootが公式にKotlinを推し、JetBrains自身が開発したKtorという軽量Webフレームワークも一定の人気を得ています。Gradleのビルドスクリプトを書く言語としてもKotlinが採用され(Kotlin DSL)、Groovy DSLからの移行が進んでいます。

もう一つ注目なのがKotlin Multiplatformです。iOSアプリのビジネスロジックをKotlinで書き、Swiftから呼び出すといったクロスプラットフォーム開発が本格的に実用に乗ってきており、Netflixや9GAGなど大規模アプリの採用事例も増えています。サーバ・モバイル・Web(Kotlin/JS)・ネイティブ(Kotlin/Native)と、JVMの枠を完全に飛び越えた展開を見せています。

他のJVM言語との立ち位置

他のJVM言語との立ち位置

KotlinはしばしばScalaやSwiftと比較されます。Scalaに対しては「同じJVM言語ながら実用性に振った設計」が売りで、学習コスト・コンパイル時間・ツーリングの安定性で優位に立ちます。逆に高度な関数型機能や型表現力を求めるなら、Scala 3を選ぶほうが満足度は高いでしょう。

Swiftとの比較では、両者ともモダンな言語機能を備える点で似ていますが、プラットフォーム(Android vs iOS)が異なるため、住み分けは比較的明確です。Kotlin Multiplatformの台頭で「両方をKotlinで」という選択肢が現実味を帯びてきており、モバイル開発者にとってKotlinの存在感は年々大きくなっています。

まとめ

Kotlinは、Javaの巨大な資産を捨てずに、しかし現代的な書き心地を手に入れたいという開発者の願いを叶えた言語です。Android公式言語の座に始まり、サーバ・マルチプラットフォームへと活躍領域を広げ続けています。JVM系の新規プロジェクトを始めるなら、まず候補に挙がる現実的な選択肢と言ってよいでしょう。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次