Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

And they already had PNaCL, which was literally vetoed by the other browser vendors, politics.


Calling it “politics” is a disservice. PNaCL was closely tied to Chrome (+ PPAPI), but it paved the way for WASM. Mozilla’s asm.js was a different step leading in the same direction.


Yes it was politics, it was open source and others were invited to contribute, instead Mozilla came up with convoluted asm.js as alternative.

And it remains to be seen when WASM will reach parity with PNaCL features, most likely 5 more years or so.

It is incredible how politics slow down innovation.


Eh, PNaCl had its own share of problems (the only feature it had even over asm.js was pthread-style threading, but performance was about even and first time upstart speed for a new code blob was a lot slower both than asm.js and Wasm).

But as the "whole developer package", PNaCl quickly fell behind emscripten:

The whole feature area of interacting with the Javascript and web-API side was basically non-existant, or at best difficult (it felt more like JNI in the Android SDK/NDK), while emscripten treated this as important feature to get right from the start.

Emscripten realized early how important it is to support porting existing code bases and added shims for quite a few popular cross-platform APIs.

Working with the PNaCl SDK was just barely better than the Android NDK (which is pretty much the yardstick for the worst developer experience possible), and development just wasn't as fast and "pragmatic" than emscripten and asm.js (despite emscripten basically being a "one man show" for a long time).

TL;DR: PNaCl nostalgia considered harmful ;)


WebAssembly hype is also considered harmful.

"Not So Fast: Analyzing the Performance of WebAssembly vs. Native Code"

https://www.usenix.org/system/files/atc19-jangda.pdf

SIMD in PNaCL

https://developer.chrome.com/native-client/reference/pnacl-c...

Currently at phase 3 on WebAssembly

GC in PNaCL,

https://chromium.googlesource.com/native_client/pnacl-llvm/+...

Currently at phase 1, on hold due to reference types, and still remains to be seen how to proceed.

Tail Calls in PNaCL

https://developer.chrome.com/native-client/reference/pnacl-b...

Currently at phase 3.

WebAssembly is so much better than the migration documentation from PNaCL into WebAssembly is full of "Not Implemented", "In future HTML 5 API", "Being worked on", ....

https://developer.chrome.com/native-client/migration

The irony of all of this, it that Chrome and Safari (mostly due to iOS) are what most developers nowadays care about, so we might end up with WebAssembly that works best on Chrome, coming full circle.

And the current WebAssembly development experience is also not something to be proud of, see Ashley Williams talk at WebAssembly Summit.

I do agree about the sore state of Android NDK, despite many improvements in the last 10 years, to the point that I think by making it such an unbearable experience to use C and C++, it is one of the mechanisms Google uses to improve Android's security.


I actually agree that WebAssembly is currently overhyped ;) But I guess that's one of the side effects of being a 'web technology'.

(e.g. the difference of code size and performance to plain old asm.js isn't by far as big as many people think).

> such an unbearable experience to use C and C++, it is one of the mechanisms Google uses to improve Android's security.

...as if Android has a spectacular security track record vs iOS ;)


I guess many just aren't paying attention to iOS land:

https://support.apple.com/en-us/HT210918




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: