「Kotlin 1.9.0」が公開 次世代コンパイラ「Kotlin K2」がβ版に:WebAssemblyバイナリのサイズも大幅に縮小
Kotlinチームは、プログラミング言語「Kotlin」の最新版となるバージョン1.9.0を公開した。
Kotlinチームは2023年7月6日(米国時間)、プログラミング言語「Kotlin」の最新版となるバージョン1.9.0を公開した。
Kotlin 1.9.0では、JVM(Java仮想マシン)用の次世代コンパイラとして開発中の「Kotlin K2」がβ版となった。新しい言語機能も導入された他、「Kotlin Multiplatform」と「Kotlin/Native」にも改良が加えられた。
Kotlin Multiplatform(β版)は、ネイティブプログラミングの柔軟性やメリットを維持しながら、異なるプラットフォーム間でKotlinコードを共有するための技術。Kotlin/Nativeは、LLVMを活用し、Kotlinコードを仮想マシンなしで実行できる各種プラットフォームのネイティブバイナリにコンパイルする技術だ。
Kotlin 1.9.0の主な変更点
K2がβ版に移行
K2コンパイラがβ版となった他、Kotlin/Nativeとマルチプラットフォームプロジェクトの基本的なサポートも追加された。
Kotlin 1.9.0からKotlin 2.0のリリースまでは、Gradleプロパティの「kotlin.experimental.tryK2=true」という設定により、K2コンパイラを簡単にテストできる。以下のコマンドを実行してもよい。
./gradlew assemble -Pkotlin.experimental.tryK2=true
WebAssemblyバイナリのサイズが縮小
2023年4月に公開された「Kotlin 1.8.20」で、KotlinコードをWebAssemblyバイナリとしてコンパイルできる「Kotlin/Wasm」(Kotlin WebAssembly)が実験的機能として提供開始された。単純なHello Worldの例で見ると、Kotlin 1.9.0でのWebAssemblyバイナリのサイズは、Kotlin 1.8.20の場合と比べて10分の1に縮小している。
WebAssemblyは、Web(およびWeb以外の)プラットフォームを対象とした、サイズとロード時間の両面での効率性を高めるバイナリフォーマットだ。
values関数を置き換えるenumクラスのentriesプロパティが正式な機能に
Kotlin 1.8.20で、enumクラスの entriesプロパティが実験的機能として導入された。entriesプロパティは、合成関数であるvalues()を置き換え、パフォーマンスを向上させる。Kotlin 1.9.0では、entriesプロパティが正式な機能となった。
2次コンストラクタを受け入れるインライン値クラス
インライン値クラスは、値を格納する基本的なクラスだ。通常のクラスの側面も持っているが、パフォーマンスを最大化するために非常に制限されている。Kotlin 1.9.0では、2次コンストラクタを作成できるようになった。
Kotlin/WasmとJavaScriptの相互運用性の向上
Kotlin/Wasmでは、KotlinからJavaScriptのコードを使ったり、JavaScriptからKotlinのコードを使ったりできる。Kotlin 1.9.0では、この相互運用性が向上しているが、Kotlin/Wasmは実験的な機能であるため、一定の制限がある。
- Kotlin 1.9.0から、Kotlin/WasmでのDynamic型の使用は非推奨となった。JavaScriptとの相互運用性を促進する新しいJsAny型を優先するためだ
- Kotlin 1.9.0から、Kotlin/WasmとJavaScriptの相互運用では、外部型、プリミティブ型、文字列型、関数型のみがサポートされている。さらに、JavaScriptとの相互運用で使用可能なKotlin/Wasmオブジェクトへのハンドルを表すために、「JsReference」と呼ばれる別の明示的な型が導入された
なお、現在、Kotlin Playgroundを使ってWebAssemblyビルドをオンラインでテストできるが、ターゲット環境(Google Chrome、Firefox、Microsoft Edge)で、実験的なWebAssemblyガベージコレクタを有効にする必要がある。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
Kotlinチーム、プログラミング言語「Kotlin 1.8.20」を公開 WebAssemblyバイナリを生成する「Kotlin/Wasm」のα版が利用可能に
Kotlinチームは、プログラミング言語「Kotlin」の最新版となるバージョン1.8.20を公開した。JetBrains、「Kotlin Notebook」を発表 Jupyter Notebook準拠でプロトタイピングに利用可能
JetBrainsは、統合開発環境(IDE)「IntelliJ IDEA」に対応した「Kotlin Notebook」の実験的バージョンを提供開始した。Kotlinとは――読み方、メリット、「Java」とのコード比較、実行までのチュートリアル
Android Studio 3.0を使い、最近話題のプログラミング言語「Kotlin」の特徴を解説する連載。初回は、メリット、「Java」言語とのコード比較、Android Studioの環境構築、実行までのチュートリアルなど。