It's a naive question but points me directly to a large hole in my understanding of WebAssembly. Here are the hints I already gathered but didn't give me quite a complete picture yet:<p>1. It makes sense that any language with GC-less memory management will be easier to port to WASM, because in WASM all we have is a linear array of bytes as memory.<p>2. But then higher languages like Kotlin have a LLVM backend, and then derive WASM binaries from LLVM IR. What makes this possible?<p>3. Even dynamically typed languages like Python are ported to WASM (I guess they ship the interpreter itself with the binary which will make them heavier) but I'm not sure how is it different from #2 or am I confusing two different routes?<p>4. What does this even mean - https://github.com/WebAssembly/gc/#gc-proposal-for-webassembly ? "GC proposal for webassembly" - how will it aid in WASM becoming friendlier with higher level languages?<p>5. What exactly is ahead of time compilation? What relation does it have with WASM?<p>All this means I have a very shallow understanding of memory management. So feel free to get as technical as possible. Thank you!
Wasm is actually a platform independent bytecode that can be run at near native speed by your modern browser.<p>Think it like a java bytecode, but which runs inside a browser.