I’ve been wondering about this for a while and haven’t really found a great answer for it. From what I understand, WASM is:

  • Faster than JavaScript

  • Has a smaller file size

  • Can be compiled to from pretty much any programming language

  • Can be used outside of the browser easier thanks to WASI

So why aren’t most websites starting to try replacing (most) JS with WASM now that it’s supported by every major browser? The most compelling argument I heard is that WASM can’t manipulate the DOM and a lot of people don’t want to deal with gluing JS code to it, but aside from that, is there something I’m missing?

  • @livingcoder
    link
    11
    edit-2
    10 months ago

    From my experience JS is primarily used to manipulate the DOM. I haven’t looked into it, but if you’re correct that WASM cannot manipulate the DOM then your question, to me, is tantamount to “Why aren’t people using forks to eat soup?”.

    I would love a staticly-typed, compiled language to come along and replace JS. If anyone is aware of how I can write Rust in place of JS, please let me know. For now, I suffer/enjoy JS.

    • @nous
      cake
      link
      English
      6
      edit-2
      10 months ago

      There are quite a few web frontend frameworks for rust now that are reasonably mature. Though you might still find a few rough edges they are usable for projects now.

      All of these can work without you needing to write any JS code. Though there is JS glue code involved, it is generated and you don’t need to worry about it.

      But the JS eco system is still quite large and hard to completely avoid.

    • @[email protected]
      link
      fedilink
      310 months ago

      You can absolutely modify the dom, you just need to go through a thin js glue layer between the dom and wasm

    • @[email protected]
      link
      fedilink
      210 months ago

      For transpiled-to-JS languages: Elm, Purescript, Typescript

      I personally use Elm. Really helps remove all the JS funny business, without really having to type it (mostly)