KotlinからWebAssemblyバイナリを生成するコンパイラ搭載、「Kotlin/Wasm」が試験的プレビュー公開。Kotlin 1.8.20ベータ版で
今回は「KotlinからWebAssemblyバイナリを生成するコンパイラ搭載、「Kotlin/Wasm」が試験的プレビュー公開。Kotlin 1.8.20ベータ版で」についてご紹介します。
関連ワード (必要、搭載、機能等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Kotlinで書かれたコードをWebAssemblyバイナリとするコンパイル機能を備えた「Kotlin/Wasm」が、Kotlin 1.8.20ベータ版で搭載されたことが明らかになりました。
Kotlin 1.8.20-Beta brings many new features:
– AutoCloseable interface and Base64 encoding in stdlib
– New JVM incremental compilation enabled by default
– Gradle composite builds in Kotlin Multiplatform
– New Kotlin/Wasm compiler backendTry it out: https://t.co/NbcFQaRjTZ pic.twitter.com/OHDP351baC
— Kotlin (@kotlin) February 8, 2023
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に対応することは注目に値するのではないでしょうか。