Notes on Marimo
Marimo is a reactive notebook system in Python. Here are some thoughts on it:
- Reactivity is implemented by re-writing Python expressions in the cells by means of (it appears) static analysis. The on-disk format is the rewritten expression.
- The rewrite makes all inputs and outputs explicit parameters/return values. This rewrite turns global variables into function parameters/returns
- This work well for the (simple) cases tested so far. Not sure it is a that big advantage for an experienced Python developer but perhaps it is for newcomers.
- A reactive notebook system “Pluto” has been available for the Julia ecosystem for some time.
- There is a nice two-dimensional notebook layout in Marimo
- The on-disk format is extremely easy to read, and automatic watch functions means editing outside of Marimo works very well
- The usual IDE assists seem to work well in the notebook
- And in the time it has taken me to put together these notes and some experiments I seen they’ve been bought by Corewave: https://marimo.io/blog/joining-coreweave !