Day 25255

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.

By Adam Baizley in
Tags : #Python, #Notebooks,