2. Interactive computing with Jupyter bazaar#
Jupyter, Jupyter Notebook, JupyterLab, Binder / MyBinder, Jupyter{book}, Colab, Deepnote
2.1. Jupyter and around#
The Jupyter ecosystem evolved to make computing interactive, reproducible, and shareable. It began with IPython, an enhanced Python shell for rapid experimentation, and expanded into Jupyter to support multiple languages through a decoupled kernel-interface model. Jupyter Notebook introduced a web-based environment combining code, outputs, and narrative text, ideal for teaching, research, and data analysis. JupyterLab provides a modern, flexible workspace for managing notebooks, scripts, and data in complex projects. Finally, Jupyter{book} allows structured, publication-quality books and websites to be built from notebooks and Markdown, fully executable and shareable. Together, these tools address the need for interactive coding, reproducibility, multi-language support, and clear communication of computational results, even beyond Python:
Jupyter is an open-source project that evolved from IPython. IPython originally provided an enhanced interactive Python shell, with powerful features like introspection, rich media, and tab-completion, making Python more user-friendly for experimentation and data analysis. Jupyter extended this idea to multiple programming languages (Python, R, Julia, and more) by separating the kernel (which executes code) from the interface (which displays results interactively).
Jupyter Notebook builds on this foundation, providing a web-based interactive environment where users can write and execute code, display rich outputs (plots, images, LaTeX, widgets), and combine them with narrative text. This allows notebooks to serve as reproducible documents for data analysis, teaching, and scientific communication.
JupyterLab is the next-generation interface for Jupyter, offering a modular, flexible environment where users can work with notebooks, text editors, terminals, and data files all in one workspace. It improves productivity for complex projects, supports extensions, and makes multi-document workflows smoother than classic notebooks.
Binder/MyBinder is a cloud service that allows users to launch fully executable Jupyter environments directly from GitHub repositories. It lets anyone run notebooks or Jupyter Books without installing anything locally, making content fully interactive and reproducible online.
Jupyter{book} extends the Jupyter ecosystem by allowing users to turn collections of notebooks and Markdown files into interactive, publication-quality books and websites. Unlike standalone notebooks, Jupyter Books provide structured chapters, table-of-contents, cross-references, and can be executed to show live outputs, making them ideal for teaching, tutorials, and reproducible scientific publications.
Jupyter Ecosystem Evolution (approximate years)
==============================================
IPython (2001) – interactive Python shell
│
▼
Jupyter (2014) – multi-language kernel architecture
│
├── Jupyter Notebook (2015) – web-based interactive notebooks
│ – web-based interactive notebooks
|
├── JupyterLab (2018)
│ – modern IDE-like workspace for notebooks & files
│
├── Binder / MyBinder (2017)
│ – cloud service for executable notebooks (and later books)
|
└── Jupyter{book} (2018+)
– structured, publication-quality books from notebooks & Markdown
2.2. Colab#
Colab is Google’s cloud version of Jupyter Notebook, fully integrated with the Jupyter ecosystem, making it easy to run, share, and collaborate on notebooks online.
Colab (2017) sits in this ecosystem as a cloud-hosted Jupyter Notebook environment:
Runs notebooks without local setup.
Provides free CPU/GPU/TPU resources.
Enables real-time collaboration like Google Docs.
Fully compatible with .ipynb notebooks, so you can open notebooks from GitHub or Jupyter Book in Colab.
Colab is designed:
For students, researchers, or teams who don’t want to install Python locally.
To share interactive notebooks with reproducible results.
To test notebooks from GitHub quickly.
2.3. Jupyter {book}#
jupyter {book} and two important files:
Launch into interactive computing interfaces
Jupyter backends#
the Jupyter inline backend is what converts your Matplotlib figures into embedded images inside notebooks, and %config InlineBackend...
is how you control their quality and format.
%config InlineBackend.figure_format = 'pdf' # fine but could be combersome
%config InlineBackend.figure_format = 'svg' # "
%config InlineBackend.figure_format = 'retina' #
%config InlineBackend.figure_format = 'png'
%config InlineBackend.rc = {'figure.dpi': 200} # or 300 for print quality
with retina
the Jupyter inline backend actually tells Matplotlib to render the figure at double the standard DPI (so if your default is 100 dpi, it makes a 200 dpi PNG). Then the notebook displays it at the normal on-screen size, so it looks sharper on high-density displays (like MacBooks) and also when the image gets embedded in the LaTeX/PDF build.
Other backends:
%matplotlib inline # use inline backend
%matplotlib notebook # interactive plots inside notebook
%matplotlib widget # interactive with ipywidgets