Marimo
An alternative to Jupyter Notebooks. Discovered Marimo after listening to the TalkPythonToMe podcast. I use jupyter mainly to experiment with code and data to get quick prototype up and running.
Trying Marimo felt more modern, it's reactive model means that re-running of cells is not required to update values in other cells. This made developing anything interactive fairly seemless to mimic behaviours.
Feature | Marimo | Jupyter |
---|---|---|
Execution model | Reactive: cells auto-update when dependencies change | Imperative: cells must be run manually in order |
Reproducibility | Always consistent, no hidden state | Can get out of sync if cells run out of order |
Interactivity | Native support for UI elements (sliders, dropdowns, etc.) | Widgets/extensions needed for rich interactivity |
Learning curve | New reactive model but simpler once you adjust | Easy to start, but execution order confuses beginners |
Ecosystem | Young, Python-only, growing community | Mature, wide adoption, multi-language kernels |
Collaboration | Exportable to scripts/apps, ecosystem still small | Broad support: GitHub, Colab, Kaggle, nbviewer |
Use cases | Interactive apps, reproducible workflows, dashboards | Exploration, teaching, research, industry standard |
One gotcha with Marimo is that it doesn’t allow you to rebind the same variable name in a chain (e.g., x = 1 in one cell, then later x = x.func()). Though I have found this to be useful, as you are forced to rename variables that you wish to treat this way and acts like a built-in break point for errors at runtime.