Jupyter Notebooks are popular a development and training environment which have become the de-facto integrated development environment (IDE) for data science and machine learning.
Jupyter Notebooks are wildly popular but it's worth noting there are some drawbacks compared to working in a traditional IDE:
Versioning notebooks is challenging. The code itself lives in the Notebook, not a source code management (SCM) system like Git/GitHub. This means you don’t get the benefits of merging, branching, and diffing code.
Distributed training is not possible without a custom setup.
Live collaboration is non-existent. Jupyter is not designed to have multiple users work in the same Notebook or on the same code concurrently. Notebooks may be forked but there is no off-the-shelf way to merge forks down the road.
As a result, some view Jupyter Notebooks solely as a tool for prototyping, analysis, and exploration.
There are, however a few examples of notebooks used in large-scale production pipelines such as those at Netflix.
Jupyter Notebooks + Gradient
Notebooks are a core component of the Gradient platform. Gradient offers a one-click Jupyter Notebook environment that is fully compatible with any existing Notebook and runs on a wide range of instances without any infrastructure management.
Notebooks can easily be shared publicly to collaborate on ML projects like GitHub repositories. The ML Showcase is a curated list of Jupyter Notebook-based projects that can be easily forked and edited.
Gradient supports both Jupyter Lab (the newest version) and Jupyter Notebooks (the older version).