Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
The latest Kotlin can target WasmGC. This is in Alpha preview right now, but works well, and it's one of the first language implementations that does it.
By comparison, .NET's Blazor targets LLVM, and they either AOT or JIT, however the client has to download a heavier runtime that has at least a garbage collector, and is less than ideal. Basically, the original Wasm was designed for languages with linear memory and still makes a great target for C++ or Rust. dotNET's WASM is there only to support Blazor, which is a web framework, a sort of successor to Web Forms and whose future is uncertain. Speaking of which, you're better off with MVC + HTMX, but I digress. So for more interesting use cases, Kotlin is actually ahead in their Wasm support.
For multi-platform support, Kotlin is in its infancy, but the company behind it has a vested interest in targeting multiple platforms, and Kotlin Multi-platform support also has Google backing.
So, for one, you can share business logic on iOS, as you can integrate Kotlin libraries into Swift applications: https://kotlinlang.org/docs/multiplatform.html
And they have been porting Jetpack Compose to the desktop and to iOS: https://github.com/JetBrains/compose-multiplatform
Over on .NET side, the blessed solution by Microsoft, for targeting iOS, Android or the desktop, is right now .NET MAUI. So, where's Xamarin? Where's Silverlight for that matter? That's right, Microsoft changes UI solutions like they change socks, and I don't understand how anyone could trust them for a multi-platform solution.
WasmGC is a prototype that only supports the bare minimum that is enough for languages with high level constructs only but not for something like C# which has interior object pointers (ref) and uses them heavily for performance (spans are built on top of them).
The API of WasmGC is really rudimentary.
With that said, you can track support of various WASM features by .NET here: https://github.com/dotnet/runtime/issues/94351
I don’t understand how the logic of your post works, WASM in .NET is already used in production versus something that is an early alpha? Also, on Kotlin and targeting something that is not Android - “Java Interop” that’s all I need to say.
https://github.com/nifanfa/MOOS
I ran across this link-hopping through GitHub repos after reading the article. Might be what you were hoping for.
The repo does mention the Pi. I just forgot to talk about the Pi specifically in the article, sorry. https://github.com/MichalStrehovsky/uefimaze