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コードを仮想マシンなしで実行できる各種プラットフォームのネイティブバイナリにコンパイルする技術だ。
K2コンパイラがβ版となった他、Kotlin/Nativeとマルチプラットフォームプロジェクトの基本的なサポートも追加された。
Kotlin 1.9.0からKotlin 2.0のリリースまでは、Gradleプロパティの「kotlin.experimental.tryK2=true」という設定により、K2コンパイラを簡単にテストできる。以下のコマンドを実行してもよい。
./gradlew assemble -Pkotlin.experimental.tryK2=true
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以外の)プラットフォームを対象とした、サイズとロード時間の両面での効率性を高めるバイナリフォーマットだ。
Kotlin 1.8.20で、enumクラスの entriesプロパティが実験的機能として導入された。entriesプロパティは、合成関数であるvalues()を置き換え、パフォーマンスを向上させる。Kotlin 1.9.0では、entriesプロパティが正式な機能となった。
インライン値クラスは、値を格納する基本的なクラスだ。通常のクラスの側面も持っているが、パフォーマンスを最大化するために非常に制限されている。Kotlin 1.9.0では、2次コンストラクタを作成できるようになった。
Kotlin/Wasmでは、KotlinからJavaScriptのコードを使ったり、JavaScriptからKotlinのコードを使ったりできる。Kotlin 1.9.0では、この相互運用性が向上しているが、Kotlin/Wasmは実験的な機能であるため、一定の制限がある。
なお、現在、Kotlin Playgroundを使ってWebAssemblyビルドをオンラインでテストできるが、ターゲット環境(Google Chrome、Firefox、Microsoft Edge)で、実験的なWebAssemblyガベージコレクタを有効にする必要がある。
Copyright © ITmedia, Inc. All Rights Reserved.