KotlinからWebAssemblyバイナリを生成するコンパイラ搭載、「Kotlin/Wasm」が試験的プレビュー公開。Kotlin 1.8.20ベータ版で
Kotlinで書かれたコードをWebAssemblyバイナリとするコンパイル機能を備えた「Kotlin/Wasm」が、Kotlin 1.8.20ベータ版で搭載されたことが明らかになりました。
Kotlin 1.8.20-Beta brings many new features:
— Kotlin (@kotlin) February 8, 2023
- AutoCloseable interface and Base64 encoding in stdlib
- New JVM incremental compilation enabled by default
- Gradle composite builds in Kotlin Multiplatform
- New Kotlin/Wasm compiler backend
Try it out: https://t.co/NbcFQaRjTZ pic.twitter.com/OHDP351baC
KotlinのコードをWebAssemblyにコンパイルするKotlin/Wasmコンパイラ(正確にはコンパイラバックエンドとのことですが、ここでは単に「コンパイラ」と表記します)は、Kotlinの開発元であるJetBrainsがスクラッチから開発したもので、Kotlin/Nativeでは利用しているネイティブバイナリ生成のためのLLVMを使わずにターゲットとなるWebAssemblyバイナリを生成するため、Kotlin/Nativeよりも高速なコンパイルが可能とされています。
ただし現時点でKotlin/Wasmを利用するには、WebAssemblyのガベージコレクション機能が要求されるため、Google ChromeもしくはFirefoxで開発者向けのフラグを操作してWebAssemblyのガベージコレクション機能を設定する必要があるとのことです。
参考:WebAssemblyにガベージコレクション機能が登場、Chrome 111で試験的実装に。Dartなど高級言語のWebAssembly対応へ前進
今回、Kotlin/Wasmに合わせてFirefoxでもWebAssemblyのガベージコレクション機能を実装中であることが明らかになりました。
参考:FirefoxもWebAssemblyのガベージコレクション機能を実装中であることが明らかに
マルチプラットフォーム対応を進めるKotlin
KotlinはJavaVM言語として登場し、2017年にAndroidの正式な開発言語になったことで急速に注目度を高めました。
参考:[速報]「Kotlin」がAndroidの正式な開発言語に。開発元のJetBrainsとGoogleが「Kotlin財団」の設立も計画。Google I/O 2017
その後、Kotlinの開発元であるJetBrainsは、iOSやWindowsアプリケーションの開発に対応するKotlin/Nativeや、サーバアプリケーションの開発に対応するKotlin/JVM、Webアプリケーションの開発に対応しJavaScriptを生成するKotlin/JSなどマルチプラットフォームに対応した言語への進化を進めてきました。
Kotlin/WasmはそうしたKotlinのマルチプラットフォーム戦略の1つです。
現在、WebAssemblyアプリケーションを開発する言語としてRustやGo言語が人気ですが、Kotlinも将来その中に入ることが期待されます。そしてJavaVMをベースとしてきたプログラミング言語がWebAssemblyに対応することは注目に値するのではないでしょうか。
あわせて読みたい
パッケージマネージャ「Homebrew 4.0」正式リリース、より高速に。Git cloneからJSONによるパッケージ管理へ切り替え
≪前の記事
FirefoxもWebAssemblyのガベージコレクション機能を実装中であることが明らかに