6 ms·
The web is a platform that has so much unrealized potential that is absolutely wasted. Wasm is the perfect example of this - it has the potential to revolution
by apatheticonion 1y ago
The web is a platform that has so much unrealized potential that is absolutely wasted.
Wasm is the perfect example of this - it has the potential to revolutionize web (and desktop GUI) development but it hasn't progressed beyond niche single threaded use cases in basically 10 years.
- adastra22 1y agoIt should never have been web assembly. WASM is the fulfillment of the dream that started with Java VM in the 90’s but never got realized. A performant, truly universal virtual machine for write-once, run anywhere deployment. The web part is a distraction IMHO.
- secondcoming 1y agoWhy did Java fail though, and why would wasm succeed when the underlying philosophy is the same?
- dijit 1y agoabundance of the runtime, ease of distribution of programs, the permission model which was bolted on, appropriate sandboxing mechanism leading to authorisation problems and performance when people were not ready to sacrifice a very significant amount for no reason. Oh, and breaking changes between versions meaning you needed multiple runtimes and still got weird issues in some cases.
- thaumasiotes 1y agoI asked a number of times on HN why wasm was good when java applets, exactly the same thing, were bad. There was a vague feeling that java applets were insecure and that this would somehow not be an issue for wasm. It's not just applets; we also had Flash, which was a huge success until it was suddenly killed. As far as I can tell, the difference between java applets and Flash is that you, the user, have to install java onto your system to use applets, whereas to use Flash you have to install Flash into your browser. I guess that might explain why one became more popular than the other.
- diffuse_l 1y agoFlash was a security nightmare, with multiple vulnerabilities discovered regularly. It was eventually killed because Apple decided it won't support it on the iPhone.
- shagmin 1y agoAnd conveniently around the same time javascript was rapidly evolving.
- thaumasiotes 1y agoYour implication is that the idea that java applets were insecure had nothing to do with their adoption or lack thereof.
- detaro 1y agoI don't think "exactly the same thing" is accurate. And WASM has put more effort into sandboxing, both in the design (very limited interfaces outside the sandbox) and implementations (partially because we've just gotten a lot better at that as an industry).
- croes 1y agoBut now you can do more in the browser than back then with Java applets. Crypto miners weren’t a thing for Java applets
- 3cats-in-a-coat 1y agoJava didn't fail, it was replaced by the web to a large part, but remains strong not only as the original JVM, but the Android clone and .NET. As for why the clones... IP issues. Otherwise Java would dominate, like the web does.
- noosphr 1y agoHigh level and opinionated. The jvm bytecode is much closer to wasm than Java ever was.
- adastra22 1y agoTo expand on this, WASM is closer to LLVM bytecode vs Java VM which is really designed around what the Java programming language needs.
- Aardwolf 1y agoI'm not sure how it's for others, but for me there was a perception issue with java applets on the web in the mid 2000s: Java applets loading on a website started as a gray rectangle, which loaded very slowly, and sometimes failed to initialize with an "uninited" error. Whenever you opened a website with a java applet (like could happen with some math or physics related ones), you'd go "sigh" as your browser's UI thread itself halted for a while Flash applets loading on a website started as a black rectangle, did not cause the UI thread to halt, loaded fast, and rarely gave an error (the only reason I mention the gray vs black rectangle is because seeing a gray rectangle on a website made me go "sigh") JavaScript was not yet optimized but the simple JS things that worked, did work without loading time. Runescape (a 3d MMORPG from the early 2000s that still exists) used Java though and somehow they managed to use it properly since that one never failed to load and didn't halt the browser's UI either despite being way more complex than any math/physics Java applet demo. So if Java forced their applets to do whatever Runescape was doing so correctly, they'd not have had this perception issue...
- adastra22 1y agoThe fact that we said “Java” and you went to thinking about “Java applets” is part of the problem. Java was meant to be a universal executable format. It ended up confined to the web (mostly, at least in the popular consciousness).
- Aardwolf 1y agoWell actually that was because the topic of the article was webassembly :) I have seen Java used for backends / software as well (and other than the lack of unsigned integers for e.g. crypto/hashing/compression/..., and lack operator overloading for e.g. vectors/matrices/bigints/..., it's 'fine' to me)
- adastra22 1y agoBut that’s the point! “Web” Assembly really has nothing to do with the web, or browsers :) It came out of the web standards groups, that’s all. It is an architecture agnostic executable format.
- nikanj 1y agoEvery few months Sun / Oracle would release a new update requiring new incantations in the manifest files. If you didn't constantly release patched versions of your applet, your software stopped working. Javascript from 20 years ago tends to run just fine in a contemporary browser.
- DonHopkins 1y agoOracle bought Sun and now owns Java, remember? All technical discussions about Java -vs- any other languages can now be immediately terminated by mentioning the word "Lawnmower", which overrides all technical issues. https://news.ycombinator.com/item?id=15886728 https://news.ycombinator.com/item?id=15886728
- w10-1 1y ago> Why did Java fail though Um, Java has dominated enterprise computing, where the money is, for 25+ years. There's no money in browser runtimes. They're built mostly defensively, i.e., to permit ads or to prohibit access to the rest of the machine. > why would wasm succeed when the underlying philosophy is the same? wasm is expressly not a source language; people use C or rust or Swift to write it. It's used when people want to move compute to the browser, to save server resources or move code to data instead of data to server. Thus far, it hasn't been used for much UI, i.e., to replace Javascript. Java/Oracle spent a lot of money to support other JVM languages, including Kotlin, Scala, Clojure - for similar reasons, but also without trying to replace Javascript, which is a loss leader for Google.
- int_19h 1y agoBecause the underlying philosophy was not the same. Java bytecode was never originally intended as a generic low-level assembly language. Its semantics are defined largely by the needs of Java the language, which means that, on one hand, it doesn't even have pointers (only object references; so you can't e.g. point into the middle of an array), and, on the other hand, it has opcodes like "call method" that map nicely to what Java does but not necessarily to what other languages do. wasm, on the other hand, is sufficiently low-level that you can compile C into it.
- renox 1y ago"Dream", well until you think about i18n and a11y..
- 0x696C6961 1y agoWhat does a compiler target have to do with accessibility?
- adastra22 1y agoWhat do you mean?
- Eavolution 1y agoi18n: internationalisation, a11y: accessibility
- adastra22 1y agoWhat I mean is, what does that have to do with a portable executable binary format?
- renox 1y agoWhat I mean is that portable execution is only a very small part of 'good' SW: you need also security, i18n, a11y etc.
- adastra22 1y agoAll of that exists at a way higher level. It's like saying ELF binaries don't provide good i18n or a11y. I don't even know how to interpret that.
- renox 1y agoSure, but as a 'dream' portable executable is kind of funny when execution by itself brings you nothing (except heating the CPU), you also need portable IO, security, i18n, a11y..
- xeonmc 1y agoWhat would you propose if you were to rename it? Generalized Assembly? GASM?
- passivegains 1y agoI'd probably go with something like Open Regular Generalized ASseMembly.
- falcor84 1y agoHow about "Optimized Reduced Generalized Assembly for Simulated Machines"?
- croes 1y agoBut the blocking of ad, tracking and miner scripts gets more complicated with WASM
- msgodel 1y agoThe classpath that came with the JVM was much more well thought out than the web is. That's the real problem.
- lbotos 1y agoCurious: what are the cases you want that a currently blocked? I’ve personally felt like it has been progressing, but I’m hoping you can expand my understanding!
- 3cats-in-a-coat 1y agoGive me one thing that your theoretical WASM can "revolutionize". Aside from more efficient covert crypto mining on shady sites.
- tlb 1y agoI use it for a web version of some robotics simulation & visualization software I wrote in C++. It normally runs on as an app on Mac or Linux, but compiling to WASM lets me show public interactive demos. Before WASM, the options were: - require everyone to install an app to see visualizations - just show canned videos of visualizations - write and maintain a parallel Javascript version Demo at https://throbol.com/sheet/examples/humanoid_walking.tb https://throbol.com/sheet/examples/humanoid_walking.tb
- tcfhgj 1y ago> Throbol requires WebGPU. Try with Chrome, Edge, Safari, or Opera.
- Doohickey-d 1y agoIt's almost there: firefox has shipped it for windows (to begin with): https://mozillagfx.wordpress.com/2025/07/15/shipping-webgpu-on-windows-in-firefox-141/ https://mozillagfx.wordpress.com/2025/07/15/shipping-webgpu-... And safari is coming soon. So not too long untill it'll be usable.
- auggierose 1y agoDoesn't work, neither with Safari nor with Chrome, at least not on macOS Monterey. I guess the whole stack is too modern for my 18-core Intel iMac Pro.
- AndrewDucker 1y agoWorks fine in Chrome for me.
- apatheticonion 1y agoHigh performance web-based applications is pretty high on my list. Low memory usage and low CPU demand may not be a requirement for all websites because most are simple, but there are plenty of cases where JavaScript/TypeScript is objectively the wrong language to be using. Banking apps, social network sites, chat apps, spreadsheets, word processors, image processors, jira, youtube, etc Something as simple as multithreading is enough to take an experience from "treading water" to "runs flawlessly on an 8 year old mobile device". Accurate data types are also very valuable for finance applications. Another use case is sharing types between the front and back end.