Wow, it seems to work really well. After giving it a small test drive, I'm impressed. Solid work from Mozilla, and a pretty informative article too!<p>That said, between this, iodide and ObservableHQ, I guess I give up. The browser <i>is</i> the new OS.<p>My question now is - how can we make browser environment to be more like Emacs (bear with me)? My main complaints are:<p>- Browser ergonomy absolutely sucks, and there's nothing you can do about it. You're at the mercy of each service's UI, which usually means you'll be clicking a lot and maybe sometimes get a keyboard shortcut here and there. Forget about advanced features, or consistency between sites.<p>- You have near-zero control over your computing environment. Between sandboxing and half the code being obfuscated blob of transpiled JS (the other half of the code is on the server), you can maybe automate the UI a little with userscripts and fix it up with userstyles.<p>- There's near-zero interoperability. Unless service authors agree on and implement some APIs, things can't talk to each other. Forget about <i>making</i> them talk. Whatever little wiring you can sometimes do (thanks to services like Zapier and IFTTT), you never have control over the process, and it always involves communication through third-party servers, even if all you'd like is to transfer some local data between browser tabs.<p>If the browser is the next OS, can we make it suck less than desktop OSes in terms of ergonomy / productivity? Desktop OSes already suck in this regard compared to the promise of old Smalltalk and Lisp systems (that's why I live in Emacs most of the time), so all I see is a downwards trend.<p>Current state of things is fine for casual use and casual users, but if I'm to spend 8+ hours a day doing serious work in a web browser, the browser needs to be better.
It's great to see how far WebAssembly and Emscripten has come and this is a really cool app!<p>> If you haven’t already tried Pyodide in action, go try it now! (50MB download)<p>I wonder though how ready is it for production usage. At Repl.it, years ago[1], we moved away from browser-based execution to the cloud because it excluded many users who don't have the client-side firepower to download/parse/execute this much JS/WASM.<p>Repl.it can already run a lot of the examples here [2] but I gotta say the DOM-integration is pretty neat. We could do interactive stuff on Repl.it using our new Graphics infrastructure (GFX)[3] but there is always the roundtrip delay. Here is the same matplotlib example running and streamed down on X11: <a href="https://repl.it/@amasad/matplotlib" rel="nofollow">https://repl.it/@amasad/matplotlib</a><p>[1]: <a href="https://news.ycombinator.com/item?id=16578943" rel="nofollow">https://news.ycombinator.com/item?id=16578943</a><p>[2]: <a href="https://repl.it/@amasad/pyodide-example" rel="nofollow">https://repl.it/@amasad/pyodide-example</a><p>[3]: <a href="https://repl.it/blog/gfx" rel="nofollow">https://repl.it/blog/gfx</a>
There is one area where "computing in the browser" misses the mark a little - browser interfaces (like Jupyter) are often used not just for the convenience they offer, but also because they serve as thin clients, which provision vastly better computing resources than you have locally.<p>So while I do some of my coding in the browser, the code executed is an EC2 far far away, close to my data, with excellent networking etc. There is very little that a Python stack directly in my browser would offer, to me (!) at least (your mileage may vary).
Incredible undertaking. Looking forward to play with it for simple machine learning tasks.
I think that loading packages directly from PyPI will be a huge milestone.
Would be curious to see if a version of Cython could be made to work with this. Much of my data analysis is me passing numpy arrays into C functions which Cython helps a lot with. So I would be looking for a version of Cython that would convert that to webassembly.
> It’s also been argued more generally that Python not running in the browser represents an existential threat to the language<p>I do not believe that.
Looks really nice!<p>I prefer the look of the JSMD format to the Jupyter notebook format and hope that is something that might get integrated into JupyterHub as well.<p>Question: is there some documentation for deploying your own Iodide server behind a firewall? The original Iodide post mentions this is possible.
It's a cool project technically, but I don't understand the use case?<p>I mean surely everyone can just have real python/jupyterlab - if you run it in Docker it's easy to handle the dependencies etc.<p>Am I missing something?
I'm looking forward to try out Pyodide in Electron so that I can make use of all the great Python scientific and signal processing libraries for data processing.