One of the big limitations in my mind is that I still don't know of that many people using it in production at scale. Is there a list, or well known set of examples (other than Figma), who are using WASM in prod?
One of the big limitations in my mind is that I still don't know of that many people using it in production at scale. Is there a list, or well known set of examples (other than Figma), who are using WASM in prod?
https://www.infoq.com/presentations/autocad-webassembly/
https://blogs.autodesk.com/autocad/autocad-web-app-google-io...
https://forge.autodesk.com/blog/load-encrypted-model-data-we...
BabylonJS plugins
https://babylonjs.medium.com/marker-tracking-in-babylon-js-c...
Blazor
https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor
Uno
Thinking back to how easy it is to open up VB5, drag-and-drop a UI, and ship an .exe that anyone could run (yes, because of MS’s OS monopoly, but still), the current mess required to build a similarly complex app for the web feels like a serious regression.
Did you want to leave a message? Perhaps some kind of cautionary tale?
I think they have like 4-5M users, and a $2B valuation.
It simply won't be viable to have low-level engineers do things like "build a dropdown nav" or "make an interactive carousel", and these sort of tasks will always be around.
WASM is there to augment JS in places JS isn't suitable for, rather than outright replace it. JS will definitely still exist.
To answer your Q there's also a comprehensive list of projects using Web Assembly on this site: https://madewithwebassembly.com/all-projects
So for now the value-proposition only really makes sense for a fairly narrow subset of projects: mostly ones where client-side pure-compute is a bottleneck. Theoretically API access is being worked on, but I think it's still a ways out.
That said, I tried just now to find where I read that this was on the long-term roadmap and I'm having trouble finding it. So maybe you're right that it isn't currently planned.
Devs can rely on the fact that users won't need to install a single thing, and users can rely on the fact that they're not going to have to go through the insanity that is "trying to install the right version of Boobletech(tm) Meep(r)" or, hell: "trying to get their OS to even acknowledge that the preinstalled version of java is over a decade old and it needs to stop using it instead of the new version you installed".
If your compiler can target WebAssembly, and your users are on computers with operating systems that are still supported, your WASM application will work for them, because everyone has a browser.
As does the browser in which WebAssembly executes.
> Users can also be tricked to trust malicious applets
But the ability of applets to be trusted could have been eliminated entirely. To rewrite OP's question, then:
"If we had entirely gotten rid of trusted applets, couldn't we already do this with Java, 20 years ago?"
Of course, we didn't get rid of them, but that's still a valid question vs. inventing another technology.
/s
Do these differences really matter, or is it mostly just the timing?
The big difference is that WASM, from the beginning, is supported by all the browsers natively (a consequence of it not being a proprietary technology, but an open standard), not as a plugin... If Java had started that way, the story would've turned out quite differently (but we know that at the time, the browser everyone was using was made by Microsoft, and Sun was a competitor so this would've never happened).
Microsoft - https://www.microsoft.com/en-us/garage/wall-of-fame/calc-ts-...
Adobe - https://medium.com/adobetech/acrobat-on-the-web-powered-by-w...
Fastly - https://www.fastly.com/blog/announcing-lucet-fastly-native-w...
https://www.youtube.com/results?search_query=gary+bernhardt+...