-
-
Notifications
You must be signed in to change notification settings - Fork 43.5k
Description
What is the title of the roadmap you are submitting?
Reproducible, maintainable, and reusable Python notebooks
Roadmap Link
I am the developer of the open-source marimo Python notebook, a modern alternative to Jupyter notebooks that is reproducible, maintainable (stored as Python, testable with Git), and reusable as Python scripts, modules, and apps. marimo has been open-source for over a year and is approaching wide adoption, and has gained some recognition in the community — we are giving featured talks at PyCon US and SciPy 2025 this year.
I am interested in developing a roadmap that teaches best practices for coding in Python notebooks, addressing in particular the reproducibility and reusability crisis affecting traditional Python notebooks. Before investing time in drafting the roadmap with your (very full-featured!) editor, I wanted to seek feedback on whether you would be open to a contributed roadmap on this topic. Topics covered would include:
Challenges with traditional Python notebooks like Jupyter:
- Computational reproducibility (>96% of notebooks in one study on GitHub didn't reproduce)
- Package reproducibility
- Maintainability like regular software (how do you version? reuse code? test?)
- Reusability like regular software (running as scripts and apps)
Best practices
- Use of functions
- Minimal redefinition of variables
- Package management
- Referencing data and modules (don't use sys.path!)
How marimo is designed to make your notebooks reproducible, maintainable, and reusable by default
- reactive execution: its benefits (reproducibility) and constraints (variable redefinition)
- PEP-723 inline script metadata
- a pure Python file format
- reusable functions and classes
- running as scripts
- running as interactive web apps
For more context, this blog post elaborates on some of these challenges and how marimo addresses them: https://marimo.io/blog/lessons-learned