Re:Show HN: CheerpX – x86 Node.js/python3/Ruby REPL in brows...
by apignotti on Tuesday January 05, 2021 @02:26PM
(#25649818)
Libraries with a binary component will work as expected with our approach. CheerpX runs arbitrary x86 code, there is nothing special about Python in particular.
Obviously compiling directly to Wasm will provide the best level of performance, but it also take effort for every single application/library you want to port.
Re:Show HN: CheerpX – x86 Node.js/python3/Ruby REPL in brows...
by oneearedrabbit on Tuesday January 05, 2021 @02:44PM
(#25650028)
Thanks! On a technical side, do you run the whole application in the main thread of a web worker. I wonder whether you considered using service workers for the faster boot up?
Re:Show HN: CheerpX – x86 Node.js/python3/Ruby REPL in brows...
by apignotti on Tuesday January 05, 2021 @02:57PM
(#25650197)
I don't think service workers would help in this case. As mentioned elsewhere we are working on a revamp of the I/O subsystem that should significantly improve startup time already.
CheerpX is more advanced in a way that you can run arbitrary binaries. I’m interested to learn more about the performance tradeoffs and compare benchmarks. Out of curiosity, what’s your take on libraries that require compilation step, e.g. Pandas/NumPy?
What I particularly like about WASM is you don’t need to install anything on your machine. It’s as simple as clicking a link, and you have a secure environment that works right out of the box.
On a more personal note, I was excited about Pyodide, and about a month ago I began developing a visual notebook. Its initial purpose was to create a Python playground, which can render ad-hoc visualizations into a browser to share them with my friends. Zero setup, just type some Python code in the browser and instantly see results, render charts, etc. [1]
Overall, I love the momentum that erases the setup step for traditional tools, ultimately bringing joy to programming. I believe it would be a great way to introduce programming concepts in an educational setting.
[0] https://github.com/iodide-project/pyodide/
[1] http://diggyhq.com/