I believe this is what Pluto sets out to do for Julia.
I used it as part of the “Computational Thinking” with Julia course a year or two back. Even then the beta software was very good and some of the demos the Pluto dev showed were nothing short of amazing
Looks like by default you have to manually trigger reactivity in ipyflow, but there is a `%flow mode reactive` ipython magic mode that enables Pluto-style reactivity!
Yep. I think there is also a way to enable it by default in your ipython profile which I'll document at some point, so that you don't have to run `%flow mode reactive`. I'm curious though -- personally I much prefer to use the opt-in reactive execution mode with ctrl/cmd+shift+enter; curious to understand your preferences better :)
An always-reactive notebook is essentially a "literate spreadsheet", where you have data cells in between multimedia descriptions. In this model, all computed data is always up to date with whatever changes you make to the input parameters, including things like graphics connected to interactive sliders and text boxes. You can prototype the logic of an application very fast with real data and interactions.
Your ipython profile suggestion is good, I use that for `%autoreload` so I don’t see why it wouldn’t work for ipyflow
interesting question, I’m going to have to try the opt in reactivity in ipyflow because it’s not an option in Pluto. Actually that’s kind of a strength, one point of frustration in Pluto is accidentally triggering reactive execution of an expensive cell before everything is ready
I think the thing I like most about always-on reactivity is that the state of the REPL and outputs can never become stale. I used to run into that in jupyter a lot as a (physical sciences) student writing hacky prototype code with implicit control flow… nice for debugging but in the long run it’s quite painful.
The nearest thing I had found in python is streamlit, but it is not as smooth as Pluto IMO. Looking forward to trying ipyflow, honestly I have been hoping for something like this for a while because using Pluto+PyCall as a jupyter replacement is a bit too cumbersome for python-forward projects
After getting used to it with Julia I found it really jarring to go back to plain Jupyter (when I need python) where I have to keep re-executing the cells.
I used it as part of the “Computational Thinking” with Julia course a year or two back. Even then the beta software was very good and some of the demos the Pluto dev showed were nothing short of amazing
https://plutojl.org/