プログラミング言語

Kotlin

JetBrains / 2011年登場

JetBrains が作った JVM 言語。Java と完全互換ながら簡潔で安全に書け、Google が Android 開発の第一言語に推奨する現代 Android の標準。

3つの要点
TL;DR
  1. Java 互換で簡潔・null 安全な JVM 言語。
  2. Google 公式の Android 第一言語。
  3. 新規 Android なら Java より Kotlin。

基本情報

仕様と特徴

Kotlin のロゴ
製品・技術の概要KotlinJetBrains が作った JVM 言語。Java と完全互換ながら簡潔で安全に書け、Google が Android 開発の第一言語に推奨する現代 Android の標準。
型付け
静的強い型付けnull 安全)
実行方式
JVM+ Native / JS)
パラダイム
マルチパラダイムOOP + 関数)
登場
2011年JetBrains
この言語の強み
Java と完全相互運用で移行が容易null 安全で簡潔・安全
活躍する領域
Android アプリ開発サーバサイド(Spring 等) / マルチプラットフォーム(KMP)

選定ガイド

選定ポイント

採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。

採用に向く条件

選ぶ理由

  1. Java と完全相互運用で移行が容易
  2. null 安全で簡潔・安全
  3. Android 公式推奨・コルーチンで非同期が楽

事前に確認する条件

考慮すべき点

  1. JVM の起動・ビルドの重さを継承
  2. Android 以外の事例は Java より少なめ
  3. コンパイルがやや遅い

向いている用途

こんな用途に向く

Android アプリ開発サーバサイド(Spring 等)マルチプラットフォーム(KMP)

詳しい解説

もっと詳しく

どんな言語か

Kotlin は IntelliJ IDEA を作る JetBrains が開発した、JVM(Java 仮想マシン)上で動く モダンな言語です。Java との高い相互運用性があり、既存の Java 資産を直接呼び出せます。2017 年に Google が Android 開発の公式言語として推奨して以降、現代の Android 開発の標準 になりました。

ねらいは「Java の良さ(成熟・エコシステム)を活かしつつ、冗長さと危険を減らす」こと。同じ処理を、より短く・より安全に書けます。

横にスクロール

Kotlin ソースを型検査して中間表現へ変換し、JVM バイトコード、JavaScript、ネイティブの各対象へ生成する経路と、JVM 上でのクラス読込み・JIT・GC
Kotlin は型検査後の中間表現から対象別の成果物を生成します。JVM では Java と同じクラス・JIT・GC の境界を使い、コルーチンは中断可能な状態機械へ変換されます。

null 安全が言語に組み込まれている

var name: String = "Taro"    // null を入れられない
var nick: String? = null     // null を許すなら ? が必要

val len = nick?.length ?: 0  // null なら 0 を使う

多くのバグの原因である NullPointerException を、型検査によって減らせます。「null かもしれない値」は型 String? として明示され、安全に扱わないとコンパイルが通りません。ただし !!、初期化処理、Java との境界などでは実行時例外が残ります。

Java と何が違うのか

  • 簡潔:データクラスを 1 行書くと equals / hashCode / toString が自動生成される。
  • null 安全:上記のとおり、NPE を型で防ぐ。
  • コルーチン:軽量な非同期処理を読みやすく書ける(suspend 関数)。
  • 拡張関数:既存クラスにメソッドを後付けできる。

それでいて JVM のエコシステム(Spring など)と性能をそのまま継承 します。

どんな場面で使うか

  • Android アプリ開発:Google 公式推奨。新規開発はまず Kotlin。
  • サーバサイド:Spring Boot などで、Java の代替として。
  • マルチプラットフォーム(KMP):iOS とロジックを共有する用途も広がりつつある。

注意点

JVM 由来の起動・ビルドの重さは引き継ぎます。また Android 以外(サーバーなど)では実績がまだ Java ほど多くないため、情報量は Java に一日の長があります。とはいえ「新規の Android なら Kotlin」は揺るがない選択です。

言語選定

Kotlinを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

Android アプリ開発

比較で見る軸

型付け: 静的・強い型付け(null 安全) / 実行方式: JVM(+ Native / JS) / パラダイム: マルチパラダイム(OOP + 関数)

導入後に効く点

null 安全で簡潔・安全

先に潰すリスク

JVM の起動・ビルドの重さを継承

数字・仕様の読み方
型付け
静的・強い型付け(null 安全)
実行方式
JVM(+ Native / JS)
パラダイム
マルチパラダイム(OOP + 関数)
登場
2011年
JetBrains

判断チェックリスト

  • 自社の用途が「Android アプリ開発 / サーバサイド(Spring 等)」に近いか確認する。
  • 強みである「Java と完全相互運用で移行が容易」が本当に評価軸になるか確認する。
  • 注意点の「JVM の起動・ビルドの重さを継承」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

Android アプリ開発サーバサイド(Spring 等)マルチプラットフォーム(KMP)

最初の一歩

Hello, World!

fun main() {
    println("Hello, World!")
}
公式ドキュメント