「Kotlin」の言語仕様として、「JVM言語(Java相互運用性)」「静的型付けオブジェクト指向言語」「コンパイラ言語」「コード安全性」「Kotlinライブラリ」について紹介します。

「Kotlin」の言語仕様

「Kotlin」の言語仕様として、「JVM言語(Java相互運用性)」「静的型付けオブジェクト指向言語」「コンパイラ言語」「コード安全性」「Kotlinライブラリ」について紹介します。

■関連する比較ページ

「Kotlin」の言語仕様

■JVM言語(Java相互運用性)

KotlinはJVM言語であり、「Javaプログラミング言語と100%互換」「既存のJavaコードベースがKotlinと適切に相互作用できる」などに重点が置かれています。Kotlinコードは、JVM(Java Virtual Machine:Java仮想マシン)で動作するJavaバイトコードへコンパイルされます。

KotlinではJava 6とJava 8の互換バイトコードの生成を選択できます。より高いバージョンのプラットフォームに対して、より最適なバイトコードを生成できます。

KotlinのJava連携能力は非常に高く、ほぼ完全な互換性があるため、「KotlinコードからJavaコードを呼び出す」「JavaコードからKotlinコードを呼び出す」ことが可能で、JavaコードとKotlinコードを混在させた開発も可能です。遥かに簡単に導入を行え、開発リスクを低減できます。

主なメリット

・Javaの抱える問題から解放されてプログラミングできる
・高い信頼と性能を持ったJVM上で動く
・Javaによって記述された既存のライブラリ/フレームワークなどの資産を活用できる
・「Java-to-Kotlinコンバートツール」で既存のコードの移行を簡素化できる

JavaScriptへの出力

Kotlinのコンパイラは「Javaバイトコード」の他に、「JavaScriptコード」を出力できます。JavaScriptターゲットを選択すると、プロジェクトの一部であるKotlinコードとKotlinに付属する標準ライブラリがJavaScriptに変換されます。

JavaScriptコードを利用することで、バックエンドとフロントエンドの双方でKotlinを使った開発も行えます。

■静的型付けオブジェクト指向言語

Kotlinは、静的型付けの本格的なオブジェクト指向言語で、「型推論」「ラムダ式」「高次関数」「関数型」などのモダンな文法/機能を備えています。

クラスベースのオブジェクト単位で開発を行うことができるため、開発スピードや作業工数を削減できます。

■コンパイラ言語

Kotlinはコンパイラ言語であるため、他のインタプリタ言語よりも実行速度が高速です。

■コード安全性

型安全

Kotlinは「型」や「null」について厳格に取り扱う設計になっているため、Javaよりも安全なコードを書けます。

コンパイル時にソースコードの誤りが発見されるため、開発者は早い段階でバグを発見でき、より安全なコーディングを行えます。

null安全

特にnullの問題については、「nullポインタの逆参照(NullPointerException)」が起こり得ないような仕組み(null安全)が言語機能として提供されています。

型として「nullを持つ型」と「nullを持たない型」が区別されます。型検査の結果、中身がnullではないことが確認されると、その時点で中身の型にキャストされます。

このような仕組みにより、NullPointerExceptionが発生する可能性を非常に低くすることができ、コードの安全度が増します。

コーディングバグを低減させる仕組み

その他にも、さまざまな「ミスを未然に防ぐための機能」が導入されており、イージーなコーディングバグを生みにくい言語になっています。

■Kotlinライブラリ

標準ライブラリ

Kotlin標準ライブラリでは、主として開発において必要不可欠なものを提供しています。

・慣用パターン---let/apply/use/synchronizedなどを実装する高次関数
・コレクション---クエリ操作を提供する拡張関数
・各種ユーティリティ---文字列操作、文字シーケンス操作
・JDKクラス拡張機能---ファイル操作、IO処理、スレッド処理 など

→Kotlin →Kotlin Standard Library

テストライブラリ

kotlin.testライブラリは、使用されているテストフレームワークとは独立して、テストでのアサーションを実行するためのテスト関数とユーティリティ関数のセットを提供します。

→Kotlin →kotlin.test

Kotlin最新TOPICS

最新情報はありません。

Kotlin最新CLOSEUPコラム

イベント情報

  • Zabbixカンファレンス2019
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter