Kotlin
Kotlinのロゴ | |
パラダイム | オブジェクト指向プログラミング、関数型プログラミング、命令型プログラミング、構造化プログラミング、宣言型プログラミング、ジェネリックプログラミング、リフレクション、並行計算 |
---|---|
登場時期 | 2011年 |
設計者 | アンドリー・ブレスラフ、ドミトリー・ジェメロフ |
開発者 | ジェットブレインズ |
最新リリース | 2.0.10/ 2024年7月22日[1] |
型付け | 静的型付け |
方言 | Gradle Kotlin DSL |
影響を受けた言語 | Groovy、C Sharp、Gosu、Java、Ruby、JavaScript、Scala、Python、ML |
プラットフォーム | Javaプラットフォーム(Android含む), JavaScript実行環境, FreeBSD, Linux, macOS, Windows, iOS |
ライセンス | Apache-2.0 |
ウェブサイト |
kotlinlang |
拡張子 | kt、kts |
Kotlin(コトリン)は、ジェットブレインズのアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、静的型付けのオブジェクト指向プログラミング言語である。
開発経緯
[編集]Kotlinは、ロシア・サンクトペテルブルクにある、ジェットブレインズの研究所で生まれた。
ジェットブレインズ社は Java、Ruby、Python などのプログラミング言語による開発環境などを開発して販売してきた。Kotlinは、同社の経験を活かしJavaをもっと簡潔・安全になるように改良した産業利用向け汎用言語として開発され、2011年7月20日に発表された。
Java仮想マシン上で動作するため、Javaで書かれたプログラムと同程度に速くコンパイルされ同程度に速く動作するとしている。
Javaに望まれている機能であっても互換性を保つために実現できていない機能や、将来のJavaの仕様で実現が予定されている機能から、有用と思われる機能を採用した。また、Java仮想マシンで動く点で似ているスクリプト言語 Groovy や関数型プログラミング言語の要素が強い Scala から、機能や簡易記法(糖衣構文)を採用した。そのほか、ジェネリクスの構文などでC#の影響を受けている部分もある[2]。
歴史
[編集]2012年2月14日、Kotlin はApacheライセンス バージョン2.0に基づいてオープンソース化された[3][4]。
アプリケーションプログラミングインタフェース[5]が公開され、ウェブサイト上でのデモンストレーション[6][7] のほか、スタンドアローンなコンパイラの形と同社提供の統合開発環境であるIntelliJ IDEAのプラグインとして、マイルストーン安定版「M1」が2012年4月12日より提供[8]された。
「M2」では言語機能が強化されたほか、Android 上の開発および動作も可能となり、JavaScript へのコンパイルもサポートされた[9]。「M3」では約400件の障害修正を行ない、性能向上、型引数推論の強化などを行った[10]。「M4」で128件の障害修正を行ない、型引数推論の高速化、JDK 7 対応、データクラスの copy
メソッド新設などを行った[11]。「M6」では、Android Studioのプラグインによるサポートが追加された他、Mavenのサポート、言語の改善としてSAM(Single Abstract Method)変換のサポートやアノテーションの改善などを行った[12]。
Kotlin 1.0は、2016年2月15日にリリースされた。これは最初の安定版リリースであり、JetBrainsは以降のバージョンで長期的に後方互換性を維持することを約束している[13]。
2017年11月28日、Kotlin 1.2がリリースされた。JVMとJavaScriptプラットフォーム間でのコード共有機能がサポートされ、複数のコンポーネント(バックエンド、フロントエンド、Androidアプリケーション等)を同一コードから生成できるようになる[14]。
2018年10月29日にリリースされたKotlin 1.3の一部として、Kotlinのコードよりネイティブバイナリを生成する「Kotlin/Native」のベータ版がバンドルされた[15]。
2019年、GoogleはKotlinをAndroidアプリケーション開発の推奨言語に指定すると発表した[16]。
2021年5月5日、Kotlin 1.5がリリースされた[17]。
2021年11月、Kotlin 1.6がリリースされた。
2022年6月、Kotlin 1.7がリリースされ、新しいKotlin K2コンパイラのアルファバージョンが含まれている[18]。
2024年5月、Kotlin 2.0がリリースされた[19]。K2コンパイラが安定版として正式導入され、全てのコンパイラバックエンドが多くのロジックを共有し、統一されたパイプラインを使用できるようになった。
名称
[編集]コトリン島にちなんで命名された[20]。コトリンは、開発の地サンクトペテルブルクに近いバルト海フィンランド湾にあり、全長約12kmの細長い島である。
公式サイトには[21]「この島から名前が付いたコトリン型駆逐艦(英: Kotlin class destroyer)というのがありますが、Kotlin は別にクラスを駆逐しようというわけではありません」や、Java の由来がコーヒーであることにかけて「この島ではコーヒーなどの外来植物はあまり作っていないと思います」というジョークが掲載されている。
特徴
[編集]Java よりも簡潔に書けることを目指している。
特徴的な機能は以下のとおり[22]。
- 静的なNull安全の保証
- 演算子オーバーロード
- 高階関数、クロージャ
- ミックスインと第一級デリゲーション
- プロパティ(フィールドはない)
- ジェネリクス宣言側における変性指定 (英: declaration-site variance) と型投影 (英: type projection)
- 拡張関数
- モジュールとビルド基盤
- インライン関数(オーバーヘッドなしクロージャ)
- パターンマッチング
- Java との相互運用性(Kotlin から Java を呼び出すことも、Java から Kotlin を呼び出すこともできる)
- 構造化された並行性を基礎としたコルーチン[23]
構文規則的な特徴はScalaに近く、文の末尾にセミコロンが不要であり、また「変数名 : 型名」の順序で変数を宣言する。型推論を様々な場面でサポートする。
統合開発環境
[編集]同社提供の統合開発環境 IntelliJ IDEA で利用できる。EclipseとNetBeansでもKotlinプラグインを提供している。Android StudioでもKotlinによるAndroidアプリケーション開発を標準でサポートしている(3.0以降)。
また、同社提供のC/C++向け統合開発環境 CLion はKotlin/Nativeをサポートしている。
関連項目
[編集]脚注
[編集]- ^ “Releases Kotlin 2.0.10”. Kotlin Foundation. 2024年8月16日閲覧。
- ^ “Generics: in, out, where - Kotlin Programming Language” (英語). Kotlin. 2020年9月7日閲覧。
- ^ “Language of the Month: Kotlin”. Dr. Dobb's (February 14, 2012). 2012年7月16日時点のオリジナルよりアーカイブ。2020年9月7日閲覧。
- ^ “Java「Kotlin」、オープソース化”. 2018年6月8日閲覧。
- ^ “kotlin-stdlib - Kotlin Programming Language” (英語). Kotlin. 2020年9月7日閲覧。
- ^ “Kotlin Playground: Edit, Run, Share Kotlin Code Online”. play.kotlinlang.org. 2020年9月7日閲覧。
- ^ “JetBrainsの新言語「Kotlin」を Web ブラウザで試してみよう!”. 2018年6月8日閲覧。
- ^ “Kotlin Programming Language by JetBrains – Kotlin Blog | JetBrains” (英語). JetBrains Blog. 2020年9月7日閲覧。
- ^ “Kotlin M2 is Out! | The Kotlin Blog” (英語). The Kotlin Blog. 2021年4月2日閲覧。
- ^ “Kotlin M3 is Out! | The Kotlin Blog” (英語). The Kotlin Blog. 2021年4月2日閲覧。
- ^ “Kotlin M4 is Out! | The Kotlin Blog” (英語). The Kotlin Blog. 2021年4月2日閲覧。
- ^ “Kotlin M6 is here! | The Kotlin Blog” (英語). The Kotlin Blog. 2021年7月9日閲覧。
- ^ “Kotlin 1.0 Released: Pragmatic Language for JVM and Android | The Kotlin Blog” (英語). The Kotlin Blog. 2021年4月2日閲覧。
- ^ “Kotlin 1.2 Released: Sharing Code between Platforms | The Kotlin Blog”. 2021年7月9日閲覧。
- ^ Roman Belov (2018年10月29日). “Kotlin 1.3 Released with Coroutines, Kotlin/Native Beta, and more”. 2018年10月31日閲覧。
- ^ “Kotlin is now Google’s preferred language for Android app development | TechCrunch”. 2021年4月2日閲覧。
- ^ “Kotlin 1.5.0 – the First Big Release of 2021 | The Kotlin Blog”. 2021年7月9日閲覧。
- ^ “What's new in Kotlin 1.7.0 | Kotlin” (英語). Kotlin Help. 2023年6月9日閲覧。
- ^ “Kotlin 2.0 リリース記念: 高速、スマート、マルチプラットフォーム対応 | The Kotlin Blog”. 2024年7月29日閲覧。
- ^ 佐藤由紀子『ロシア出身の「Kotlin」がAndroidの正式開発言語に』ITmedia、2017年5月18日 。
- ^ “Reference - Kotlin Programming Language” (英語). Kotlin. 2020年9月7日閲覧。
- ^ The Kotlin Programming Language [リンク切れ]
- ^ “Coroutines basics”. Kotlin. Coroutines Guide. 2021年3月3日閲覧。