Still Using Jupyter Notebook? Check This New Alternative Out!š¤©
Speaking of alternatives for Jupyter Notebooks, you might already be familiar with tools like Google Colab, or Kaggle Notebook. Both are powerful tools for your data science or machine learning projects.
Lately, I stumbled upon a new tool thatās mind-blowing.
It is:
A reactive Python notebook that's reproducible, git-friendly, and deployable as scripts or apps.
Hereās something that might convince you:
What does this remind you?
Reproducibility.
You are correct.
If you are a regular Jupyter Notebook user, youād know about this: manually running and re-running cells can be very error-prone.
Itās a known problem for Jupyter Notebooks that not all the notebooks can be reproduced.
A 2020 study of 1.2 million notebooks showed that this is not a small issue. In the study, it was revealed that notebooks executed in a non-linear order, categorized as "not consistent," comprised a staggering 36% of the investigated notebooks!!š±
One of the core issues with traditional Jupyter notebooks is the lack of consistency between code, outputs, and program states. This tool addresses this by guaranteeing a level of reproducibility that was previously elusive. It achieves this through intelligent code analysis and an understanding of cell relationships, ensuring that hidden states are eliminated and your notebook remains reliably reproducible.
Simply put, it uses ādeterministic execution orderā.
The notebooks are executed in a deterministic order, based on variable references instead of cells' positions on the page. Delete a cell and it scrubs its variables from program memory, eliminating hidden state.
What more?
The other thing I really like about this tool is itās built-in synchronized UI elements that enhance interactivity.
Take a look:š
Notice how the slider is in sync with the python kernel: no callbacks, no observers, no manually re-running cells.
Furthermore, you can directly demo your āappā with the āapp viewā function. This feature hides all the code cells, revealing only your final product at the click of a button (see example app below).
In addition, it also achieves the following amazing things:
Maintainability. āThe notebooks are stored as pure Python programs (
.py
files). This lets you version them with git; in contrast, Jupyter notebooks are stored as JSON and require extra steps to version.āShareability. āEvery notebook can double as an interactive web app, complete with UI elements, which you can serve using the
run
command.ā
What is this tool?
This is a super fun tool called:
Keep reading with a 7-day free trial
Subscribe to The MLnotes Newsletter to keep reading this post and get 7 days of free access to the full post archives.