Cthulhu_ 8 days ago

99 times out of a hundred, sure. But sometimes you need better performance or a library that isn't available in JS.

  • hollowturtle 8 days ago

    Better performance? For javascript code that calls into native platform apis provided by the browser it's been alteady proven that performance is an order of magnitude better than calling into wasm and doing all the sheningans to move bytes from and to wasm

  • ramses0 7 days ago

    Or even "use server.physics.go", which is where my mind went to (and where I've messed around with language interoperability with tinygo before).

    This is such a wonderfully blursed and "smooth" implementation!

  • pjmlp 8 days ago

    WebGPU or WebGL is the answer.

    • dgb23 7 days ago

      I second that, having just relatively recently used the native browser APis for image processing. While it felt a bit awkward to use, it served its purpose pretty well.

      If I needed more, I would probably not use Go anyways, but a sharper tool instead.

kitd 8 days ago

The author explains why you might want to use Go instead at the end of the readme.

  • onion2k 8 days ago

    I don't think any of the use cases suggested really make sense though. For a compute-intense task like audio or video processing, or for scientific computing where there's likely to be a requirement to fetch a ton of data, the browser is the wrong place to do that work. Build a frontend and make an API that runs on a server somewhere.

    As for cryptography, trusting that the WASM build of your preferred library hasn't introduced any problems demonstrates a level of risk tolerance that far exceeds what most people working in cryptography would accept. Besides, browsers have quite good cryptographic APIs built in. :)

    • tgv 8 days ago

      > For a compute-intense task

      The browser often runs on an immensely powerful computer. It's a waste to use that power only for a dumb terminal. As a matter of fact, my laptop is 6 years old by now, and considerably faster than the VPS on which our backend runs.

      I let the browser do things such as data summarizing/charting, and image convolution (in Javascript!). I'm also considering harnassing it for video pre-processing.

      • pjmlp 8 days ago

        You can take advantage of that power via WebGPU, or WebGL if the browser is not yet up to it.

    • preommr 7 days ago

      > For a compute-intense task like audio or video processing, or for scientific computing where there's likely to be a requirement to fetch a ton of data, the browser is the wrong place to do that work.

      ... I mean... elaborate?

      Everytime I've heard somebody say this, it's always a form of someone stuck in the 90s/00s where they have this notion that browsers showing gifs is the ceiling and that real work can only happen on the server.

      Idk how common this is now, but a a few years ago (~2017) people would show projects like figma tha drew a few hundred things on screen and people would be amazed. Which is crazy, because things like webgl, wasm, webrtc, webaudio are insanely powerful apis that give pretty low level access. A somewhat related idea are people that keep clamoring for dom access in wasm because, again, people have this idea that web = webpage/dom, but that's a segway into a whole other thing.

      • chrisweekly 7 days ago

        great points, agreed

        also "segway" is a scooter, "segue" is a narrative transition