Jupyter Notebook

Jupyter is a web-based notebook: a document that interleaves executable code, the output that code produces (tables, plots, rich media), and explanatory prose in one scrollable page. Project Jupyter describes itself as “free software, open standards, and web services for interactive computing across all programming languages.” The notebook format made an experimental, narrative style of computing into the default way data scientists and machine-learning practitioners work, because a single file can hold the analysis, its results, and its explanation together.

Jupyter did not start as Jupyter. It grew out of IPython, which the IPython project describes as “a rich architecture for interactive computing” that today “powers the Jupyter Notebook and JupyterLab.” IPython began as an enhanced interactive Python shell and gradually added a richer protocol and a web-based notebook front end. The crucial architectural step was separating the user-facing notebook from the language that actually executes code, connecting them through a defined kernel protocol.

That separation is why the project was renamed and spun out. Project Jupyter’s about page states that it was “born out of the IPython Project in 2014 as it evolved to support interactive data science and scientific computing across all programming languages.” Once the notebook front end no longer assumed Python, the same interface could drive kernels for other languages; the name Jupyter nods to that language independence, evoking Julia, Python, and R. IPython continues as the reference Python kernel beneath Jupyter.

The technical core is the kernel protocol: the notebook sends code to a kernel over a messaging layer and renders whatever the kernel returns, including HTML, images, LaTeX, and other MIME types. Because that protocol is an open standard, more than forty language kernels exist, and the notebook document itself is a plain JSON file that can be shared, versioned, and re-executed. The project later added JupyterLab as a more full-featured environment and JupyterHub for multi-user deployments, all on the same standards.

For the scientific Python stack, Jupyter is the place the other libraries are actually used. An analyst loads data with pandas, computes with NumPy and SciPy, fits a model with scikit-learn, and draws figures with Matplotlib, all inline in a single notebook where each step’s output is visible next to its code. That tight loop of code, immediate result, and prose is what made the notebook the standard surface for data exploration and ML experimentation.

Sources

Last verified June 8, 2026