Kotlin(コトリン)とは
Kotlinは、JetBrains社によって開発された静的型付けの
オブジェクト指向プログラミング言語です。
Java仮想マシン(JVM)上で動作し、
Javaとの高い
互換性を持ちながら、より簡潔で安全なコード記述を目指して設計されました。2011年に発表されて以来、Androidアプリケーション開発の推奨言語として
Googleに採用されるなど、その実用性と人気を高めています。
開発の経緯
Kotlinは、JetBrains社のロシア・サンクトペテルブルクにある研究所で誕生しました。JetBrains社は、
Java、
Ruby、
Pythonなどの
プログラミング言語開発環境を提供してきた実績があり、その経験を活かし、
Javaの課題を解決するべく開発されました。特に、
Javaの持つ冗長な記述やNullPointerExceptionの発生といった問題を改善し、産業利用にも適した汎用言語として設計されています。
Javaとの相互運用性を保ちつつ、
Javaにはない便利な機能や、将来
Javaに搭載される予定の機能を取り入れ、GroovyやScalaといった他のJVM言語の良い部分も参考にしています。C#の影響も受けており、ジェネリクスの構文などにその痕跡が見られます。
歴史
- - 2012年2月: KotlinはApacheライセンス2.0でオープンソース化されました。
- - 2012年4月: 初期の安定版「M1」が公開され、Webデモやスタンドアロンコンパイラ、IntelliJ IDEAプラグインとして提供されました。
- - M2: Android開発のサポートやJavaScriptへのコンパイル機能が追加されました。
- - M3: 大幅なバグ修正と性能改善が行われました。
- - M4: 型推論の高速化やJDK 7のサポート、データクラスの`copy`メソッドが導入されました。
- - M6: Android Studioのプラグインサポートや、Mavenのサポート、SAM変換のサポートなどが追加されました。
- - 2016年2月: Kotlin 1.0がリリースされ、初の安定版となりました。JetBrains社は、このバージョン以降、後方互換性を長期的に維持することを約束しています。
- - 2017年11月: Kotlin 1.2がリリースされ、JVMとJavaScriptプラットフォーム間でのコード共有機能がサポートされました。これにより、バックエンド、フロントエンド、Androidアプリなど複数のコンポーネントを同一コードから生成できるようになりました。
- - 2018年10月: Kotlin 1.3の一部として、ネイティブバイナリを生成する「Kotlin/Native」のベータ版が同梱されました。
- - 2019年: GoogleがKotlinをAndroidアプリ開発の推奨言語に指定しました。
- - 2021年5月: Kotlin 1.5がリリースされました。
- - 2021年11月: Kotlin 1.6がリリースされました。
- - 2022年6月: Kotlin 1.7がリリースされ、新しいKotlin K2コンパイラのアルファバージョンが含まれました。
- - 2024年5月: Kotlin 2.0がリリースされ、K2コンパイラが正式導入されました。これにより、全てのコンパイラバックエンドが統一されたパイプラインを使用できるようになりました。
名称の由来
Kotlinという名前は、開発地であるサンクトペテルブルクに近い
バルト海フィンランド湾に位置するコトリン島に由来します。公式サイトでは、この島から名付けられたコトリン型駆逐艦に触れつつ、「Kotlinはクラスを駆逐しようというわけではない」というユーモアを交えて解説しています。また、
Javaの由来がコーヒーであることにかけて「この島ではコーヒーなどの外来植物はあまり作っていない」というジョークも掲載されています。
特徴
Kotlinは、
Javaよりも簡潔にコードを記述できることを目指しています。主な特徴は以下の通りです。
- - 静的なNull安全の保証: コンパイル時にNullPointerExceptionを防止します。
- - 演算子オーバーロード: 既存の演算子をユーザー定義の型で利用できます。
- - 高階関数とクロージャ: 関数を引数として渡したり、関数内で定義された変数を保持できます。
- - ミックスインと第一級デリゲーション: コードの再利用性を高めます。
- - プロパティ: クラスのフィールドにアクセスするための構文が提供されます。
- - ジェネリクス宣言側における変性指定と型投影: 型の安全性を高めながら、柔軟な型指定を可能にします。
- - 拡張関数: 既存のクラスに新しい機能を追加できます。
- - モジュールとビルド基盤: 大規模なプロジェクトを管理しやすくなります。
- - インライン関数(オーバーヘッドなしクロージャ): 実行時のオーバーヘッドを減らします。
- - パターンマッチング: 型や値に基づいた条件分岐を簡潔に記述できます。
- - Javaとの相互運用性: KotlinからJavaを、JavaからKotlinを呼び出すことができます。
- - 構造化された並行性を基礎としたコルーチン: 非同期処理を効率的に記述できます。
構文はScalaに近く、文末のセミコロンが不要で、「変数名: 型名」の順で変数を宣言します。
型推論も強力にサポートされています。
Kotlinは、JetBrains社の
IntelliJ IDEAで利用可能です。また、Eclipseや
NetBeans向けの
プラグインも提供されています。
Android Studioでは、バージョン3.0以降、標準でKotlinによるAndroidアプリ開発がサポートされています。
さらに、JetBrains社のC/
C++向け
統合開発環境であるCLionでもKotlin/Nativeがサポートされています。
関連項目
外部リンク