For anyone else who hadn’t heard of JupyterLite — it’s like Jupyter Notebook/Lab, but it runs completely in your browser. No servers, no backend — everything executes client-side.
It’s slower than native, sure — but for education, it’s a game changer. Students can open a notebook in any browser, on any device (even a Chromebook or iPad), and start coding instantly — no installs, no setup issues. Perfect for workshops, classrooms, or sharing interactive tutorials. It runs real Python, so you can teach core concepts, plotting, and even simple data analysis right in the browser. For heavier computation, you’d still offload to a remote kernel, but for learning and experimentation, it’s more than fast enough.
Hmm. Do we expect X on Y to have run times more like X*Y or max(X,Y)? Or maybe some more complicated combination because you have to pay both their overheads but then once things start cranking you are just paying the per-element cost of one of the languages…
I'm not an expert. I speculate that the compiler is unlikely to optimize the wasm binary better than an x86 binary. Furthermore, every VM instruction is on average going to need more than 1 cpu instructions to be executed. Intuitively, that would suggest slower execution. That is also what we see happen in practice with VMs.
Python is not a particularly fast language in the first place due to bad utilization of memory, hash table lookups everywhere and a high function call overhead.