WebAssembly用のKotlin、α版リリース Kotlin/JSを上回るパフォーマンス:継続的にアップデート予定
JetBrainsは、WebAssembly用のKotlin「Kotlin/Wasm」のα版リリースを発表した。これにより、マルチプラットフォームライブラリ「Kotlin Multiplatform」を使用して、Webアプリケーション用の宣言型ユーザーインターフェースをKotlinで作成できるようになった。
チェコのJetBrainsは2023年12月21日(現地時間)、WebAssembly用のKotlin「Kotlin/Wasm」のα版リリースを発表した。これにより、マルチプラットフォームライブラリ「Kotlin Multiplatform」を使用して、Webアプリケーション用の宣言型ユーザーインタフェースをKotlinで作成できるようになった。
また、「Kotlin Playground」でもKotlin/Wasmをサポートするようになったため、ブラウザで直接WebAssemblyコードスニペットを書き、Kotlin/Wasmが提供する機能を確かめることも可能だ。
Kotlin/Wasmはkotlinxライブラリ一式を導入している。このライブラリには「kotlinx-atomicfu」「kotlinx.coroutines」「kotlinx.serialization」「kotlinx-datetime」「kotlinx-io」が含まれている。
ネットワーク対応アプリケーションを構築するためのJetBrainsフレームワークである「Ktor」もWebAssemblyに導入される。次回のリリースでは、KtorのHTTPクライアントを使用してKotlin/Wasmコードからネットワークリクエストを直接送信できるようになる。
Compose MultiplatformでKotlin/Wasmが使用可能に
Compose Multiplatformを使うと、AndroidとiOS、デスクトップ、ブラウザをターゲットとする共有アプリケーションをビルドできる。独自の共有UIを作成し始める場合、同じようにKotlin/Wasmターゲットを実験的にサポートしているKotlin Multiplatform Webウィザードを使用してプロジェクトを生成できる。
パフォーマンス
WebAssemblyは言語用のコンパイルターゲットとしてゼロからデザインされているため、KotlinコンパイラはソースコードをWebAssemblyバイトコードに変換できる。同社ではKotlin/Wasmに定期的にベンチマークを実行し、実行時のパフォーマンスを確認しているという。Kotlin/Wasmはまだα版のため、継続的にパフォーマンスが改善されている。下図のようにKotlin/Wasmはほぼ全てのマクロベンチマークで既にKotlin/JSのパフォーマンスを上回っている。
同様に、Kotlin/Wasmで動作するCompose MultiplatformはJVM(Java仮想マシン)上で同じアプリケーションを実行する場合と同等の実行速度となっている。
今後のアップデート
Kotlin/Wasmは、活発に改善と強化が行われているという。
リリース直後のKotlin/Wasmのデバッグサポートには制限があり、今後はその機能を改善していく予定だ。Webをターゲットとする際にはバンドルのサイズが重要であることも同社は認識しているとし、特にCompose Multiplatformプロジェクトを対象にコンパイラが生成する出力の最適化を進めるという。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
「Kotlin 1.9.0」が公開 次世代コンパイラ「Kotlin K2」がβ版に
Kotlinチームは、プログラミング言語「Kotlin」の最新版となるバージョン1.9.0を公開した。WebAssemblyはマイクロサービスアーキテクチャの救世主となるか
マイクロサービスアーキテクチャの利用時に課題になる複雑さとコストの懸念を緩和する可能性があるのがWebAssemblyの実装だ。本稿では、WebAssemblyの機能と用途、マイクロサービスとの結び付きなどについて解説する。プログラミング言語「Rust」用の統合開発環境「RustRover」発表 JetBrains
JetBrainsはRust用スタンドアロン型IDE「RustRover」を発表した。早期アクセスプログラムを開始しており、2024年9月までにリリースする計画だ。