zurück zum Artikel

Kotlin lernt WebAssembly – jetzt aber wirklich

Rainald Menge-Sonnentag

(Bild: Andrey Suslov/Shutterstock.com)

Die Programmiersprache Kotlin startet die Alphaphase für die Anbindung von WebAssembly als Zielplattform bei der Cross-Plattform-Entwicklung.

Gut einen Monat nach der ersten stabilen Variante von Kotlin Multiplatform geht JetBrains nun die Zielplattform WebAssembly an. Kotlin/Wasm hat nun Alpha-Status, nachdem die Anbindung bisher noch als experimentell gekennzeichnet war.

Mit dem Alpha-Release gilt Kotlin für WebAssembly laut der Ankündigung im Kotlin-Blog zwar noch nicht als reif für den Produktivbetrieb, aber für Pre-Production-Szenarien. Noch gibt es wohl zahlreiche offene Baustellen.

Kotlin Multiplatform (KMP), das seit dem Release von Kotlin 1.9.20 im November als stabil gilt [1], ermöglicht es, Anwendungen für Android, iOS, Windows, macOS, Linux sowie den Browser mit einer gemeinsamen Codebasis zu erstellen.

JetBrains setzt für KMP auf eine Mischung aus Cross-Plattform-Code und nativen Abschnitten. Auf diese Weise können Entwicklungsteams beispielsweise die Business-Logik in einer gemeinsamen Codebasis verwalten, aber die UIs nativ für die jeweiligen Systeme umsetzen.

Erste Ansätze zur plattformübergreifenden Programmierung brachte das ursprünglich als JVM-Sprache (Java Virtual Machine) gestartete Kotlin bereits 2017, seinerzeit mit Cross-Plattform-Projekten für die JVM und mit Kotlin/JS für JavaScript im Browser. Kurz darauf folgte Kotlin/Native, das ohne virtuelle Maschine läuft [2] und zunächst vor allem auf iOS ausgelegt war, das keine JVM mitbringt.

Die experimentelle Anbindung an WebAssembly begann im April 2023 mit Kotlin 1.8.20 [3], das Kotlin/Wasm als Build-Ziel eingeführt hat. Zuvor war es zwar möglich, Kotlin nach WebAssembly [4] zu kompilieren, aber nur über Kotlin/Native mit dem Target wasm32.

Die Kotlin-Dokumentation enthält Tutorials [5] und Beispiele, die den Einstieg in WebAssembly-Anwendungen erleichtern sollen.

Die Dokumentation bietet einige Beispielanwendungen für Kotlin/Wasm.

(Bild: JetBrains)

Auch der interaktive Kotlin-Playground [6] ermöglicht das Erstellen von WebAssembly-Anwendungen mit Kotlin.

Über das Dropdown-Menü lässt sich Wasm als Zielplattform im Kotlin Playground auswählen.

(Bild: Screenshot von play.kotl.in [7])

Kotlin/Wasm ist zwar nicht an ein UI-Framework gebunden, aber es bildet die Grundlage für die Webvariante des deklarativen UI-Frameworks Compose Multiplatform. Bei dem 2021 vorgestellten Toolkit [8] handelt es sich um eine Erweiterung des Android-UI-Toolkits Jetpack Compose.

Weitere Details zu Kotlin für WebAssembly lassen sich dem Kotlin-Blog entnehmen [9], der auch Benchmarks mit einem Vergleich von Kotlin/JS, Kotlin/Wasm und Kotlin für die JVM aufzeigt.

(rme [10])


URL dieses Artikels:
https://www.heise.de/-9573392

Links in diesem Artikel:
[1] https://www.heise.de/news/Kotlin-macht-Ernst-mit-der-plattformuebergreifenden-Programmierung-9352485.html
[2] https://www.heise.de/news/Programmiersprachen-Kotlin-Native-nimmt-Gestalt-an-3879618.html
[3] https://www.heise.de/news/Programmiersprache-Kotlin-1-8-20-bringt-direkte-Anbindung-an-WebAssembly-8570626.html
[4] https://www.heise.de/news/WebAssembly-ist-nun-ein-fertiger-W3C-Standard-4607072.html
[5] https://kotlinlang.org/docs/wasm-overview.html
[6] https://play.kotl.in/wasm
[7] https://play.kotl.in/wasm
[8] https://www.heise.de/news/Cross-Plattform-JetBrains-bringt-Compose-auf-den-Desktop-und-ins-Web-6155707.html
[9] https://blog.jetbrains.com/kotlin/2023/12/kotlin-for-webassembly-goes-alpha/
[10] mailto:rme@ix.de