Thank you for the work on KoWasm<p>It's been exciting to watch the development of the new K2 compiler and Frontend-IR format<p>Kotlin is no longer just a JVM language, but more like a frontend with targets that now span everything from JVM bytecode, JavaScript, native code with Kotlin Native, and WASM<p>I'm really excited to see what the future holds for Kotlin and WASM in particular
Yes please, backend people (and compiler folks) be united to try to catch up with the latest wasm proposals, we are pretty close now (also waiting for the 'stringref'). The future is treating DOM stuff as system thingy, so we can stop (except those who want to stay) writing JS/TS on the logic part. I'm optimistic we will have a better mental heath on developing web frontend in near future.
This new blog post explores the huge potential of Kotlin/Wasm and how WasmGC, WASI, WebAssembly Component Model and warg repositories could change how we develop applications.
Hello world is 1.5 MB but compiled surprisingly fast: less than a second (with grade running, couldn't test konanc -target wasm yet?)<p>That's much better compilation time than kotlin/native:wasm<p>Wasm types are currently inaccessible in JS and you can't feed js objects into wasm, hopefully that will change...
> <i>But WebAssembly becomes even more interesting when you take another perspective. What if Compose for Web, the multiplatform incarnation of Jetpack Compose used on Android, would leverage Kotlin/Wasm instead of Kotlin/JS to perform pixel-perfect Canvas based rendering?</i><p>It would not really be very web like. It'd be more like Flash or a Java Applet. User extensions would all be broken.<p>This is a new thing coming people. Now that we have wasm, the native-app folks are super jazzed about not only switching programming langauges, but getting rid of HTML and the DOM. The plan goes: we're replacing structure markup & hypertext of webapps with just-a-bunch-of-pixels, big canvases, that are purely computational constructs. Declarative information is getting blown up by imperative processes; this is how native apps are having their revenge against webapps. I have yet to see how any of this actually empowers or helps users: it seems like a huge downgrade, done purely to give developers alternative options. Maybe the experiences really are vastly better, maybe what we make is categorically different once we have this tech! But I really have a hard time (given what creativity we've had & seeing how quickly bootcamp folks come in & get hacking on the DOM) believing the DOM is really so horrible that it justified de-internet-izing the web & that turning it into a motion picture machine is warranted (as anything more than early exploration).<p>The web starts with the HTML/DOM, and has been our computing world's greatest, most universal tower of Babel[1] that has held. I'm curious (and admittedly pretty terrified) to see who is happier/winners when we bring down the higher-level system, & treat it like a low level interface, like a big Canvas, like what was happening with Flash & Applets. Two other recent examples beyond Kotlin/Compose: Flutter/CanvasKit (which I commented on & got a reply from the lead about on these topics[2]), and Hixie's "Towards a Modern Web Stack"[3].<p>[1] <a href="https://unwindprotect.com/tower-of-babel" rel="nofollow">https://unwindprotect.com/tower-of-babel</a> <a href="https://news.ycombinator.com/item?id=34695638" rel="nofollow">https://news.ycombinator.com/item?id=34695638</a><p>[2] <a href="https://news.ycombinator.com/item?id=34527980" rel="nofollow">https://news.ycombinator.com/item?id=34527980</a><p>[3] <a href="https://docs.google.com/document/d/1peUSMsvFGvqD5yKh3GprskLC3KVdAlLGOsK6gFoEOD0/preview?pli=1&resourcekey=0-bPajpoo9IBZpG__-uCBE6w" rel="nofollow">https://docs.google.com/document/d/1peUSMsvFGvqD5yKh3GprskLC...</a> <a href="https://news.ycombinator.com/item?id=34612696" rel="nofollow">https://news.ycombinator.com/item?id=34612696</a>