What's stopping WebAssembly from effectively replacing JavaScript? - eviltoast

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?

  • Kissaki@feddit.de
    link
    fedilink
    English
    arrow-up
    17
    ·
    1 year ago

    Replacing costs expertise, time, and money. Nobody wants to invest that for (to them) insignificant or even pointless reasons.

    If you’re using tooling, a framework, a library - each of those makes a switch more risky, costly, or impossible.

    JavaScript works with the DOM. Why would you want to implement a separate WASM component that you have to interface with? JavaScript is good enough. Interfacing only brings problems with it.

    When you use JS you are doing it right - because there is no other way to interface with the DOM. Anything else is built on top. How would you interface with WASM? Manually? Library? Framework? What programming do you use to compile to WASM with? How do you analyze and debug WASM when it executes in a compiled WASM-binary format?

    The use case for WASM is performance, efficiency on CPU-bound operations. If CPU-bound performance is not a concern for you, or JS is good enough, there’s little reason to use WASM. Other reasons are even more niche.

    • AnarchoYeasty@beehaw.org
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      The language best suited for wasm is easily rust. And you can still interface with the Dom using frameworks like yew sycamore or leptos.

      Debugging is still a little tricky but you can debug wasm in chrome and DWARF allows you to have source maps that map to your rust code. This is s problem the community is working to improve. Until then you have the full power of console log which is how a large portion of developers already debug their applications.