Running the benchmark from the article on my laptop (M4 Macbook Air) had a few interesting results:
* when running the script with Node.js, the results are inline with the article (SoA is the fastest)
* Bun is slower than Node.js with both SoA and AoS.
* Bun has similar performance between SoA and AoS.
* in Bun, Interleaved is the fastest one by a significant margin. This is consistent through runs.
% bun bench.js
AoS: 924.54ms
SoA: 1148.57ms
Interleaved: 759.01ms
Bun's performance profile seems very different from Firefox and V8-based runtimes there. I wonder how QuickJS would fare. The article didn't mention the CPU used either, the performance difference may be dependent on the architecture as well.
You give up on hot reloading when using dear imgui and C++, though. There's nothing comparable to Vite in most ecosystems for building desktop programs, as far as I'm aware.
Tooling is the problem, I've used imgui and it's pretty good. But not nearly as practical for prototyping UI.
I hope they upstream their implementation of Web Extensions to WebKit.
I'm not interested in using a proprietary browser, and hope for a release under a free license at some point. But a free WebKit-based browser with Web Extensions could have interesting properties regarding battery life on mobile GNU workstations.
If there's one thing they should release as free software it's this. I'd be disappointed if Orion never becomes free software, but it would hurt a little less if GNOMEs epiphany could benefit from the extension support
After reading the, I don't feel convinced abtout the runtime performance advantages of WASM over asm.js. he CPU features mentioned could be added to JS runtimes. Toolchain improvements could go both ways, and I expect asm.js would benefit from JIT improvements over the years.
I agree 100% with the startup time arguments made by the article, though. No way around it if you're going through the typical JS pipeline in the browser.
The argument for better load/store addressing on WASM is solid, and I expect this to have higher impact today than in 2017, due to the huge caches modern CPUs have. But it's hard to know without measuring it, and I don't know how hard it would be to isolate that in a benchmark.
Thank you for linking it. It was a fun read. I hope my post didn't sound adversarial to any arguments you made. I wonder what asm.js could have been if it was formally specified, extended and optimized for, rather than abandoned in favor of WASM.
In other words, it didn't hit any people running Stable distros, only users on Beta versions or rolling releases.
Sounds like an improvement - having beta builds for people to catch those before they arrive in a stable GNU distribution seems the ideal workflow at glance.
Agreed on the "this needs to be Debian" part. If some of the most popular JS packages were available through the system package manager as normal *.deb packages, I think people would be more likely to build on top of stable versions/releases.
Stability (in the "it doesn't change" sense) is underrated.
reply