Hacker News new | ask | show | jobs
by vbezhenar 2306 days ago
Don't paint webassembly as something terrible. Webassembly does not add anything substantial to what's already in web. You could compile C code to JavaScript before. Webassembly does not provide new API unavailable from JavaScript. Webassembly is just an optimization. Some code will work faster and consume less memory, that's all. You could write website which paints itself on canvas with JavaScript years ago. The fact that nobody goes this route means that there are inherent problems with this approach. For example that website will be completely inaccessible for Google.
1 comments

The threat of WebAssembly is that it may encourage more sites to require users to allow client-side code execution to work. For those of us who aren't trusting enough to allow this, it means that the web gets smaller even faster than it already is.
It seems like if you replace WebAssembly with JavaScript in this comment it makes just as much sense. What is different about WebAssembly?
WebAssembly expands on the ability to do client-side stuff and makes it more accessible, so my fear is that it will make it more common.

That's pretty much the entire difference. It's a difference of degree more than of kind. As I said, Javascript is making much of the web inaccessible to me, and WebAssembly, if it becomes popular, will only accelerate this loss.

I wonder how feasible a rendering proxy would be. It would run the JS in a simulated browser environment and return the HTML.

Interactivity would be tricky, but static HTML is better than a blank page.

Edit: Found something very similar, but it targets legacy browsers using clickable image maps rather than privacy/security.

https://github.com/tenox7/wrp

WebAssembly adds new functionality to the browser runtime environment that isn't available to regular JavaScript. It was originally 1:1 with asm.js/JS but that stopped being true relatively quick.
It's faster. That's literally it. There aren't any new I/O facilities.
A few examples of things it adds that are not widely available in JS (if at all, or requiring awkward hacks/hints in JS), off the top of my head:

int64

uint32

popcnt

copysign

reinterpret_cast equivalent (the js hack for this is abysmal)

pthreads

SIMD

AOT compilation

To be fair, it's been a while since I was last one of the authors of the webassembly spec, so I could be missing some things.

Could ads be served with web assembly?
WebAssembly allows allocation of memory and exposes a huge threat surface. We can't even protect the current APIs and these are being exploited by sovereign nations to oppress people like the Uyghurs. How about we focus on making the sandboxes stronger instead of building out things like WebGL and WebAssembly.