πŸ““ The Future of the Jupyter Notebook

🐍 PyConDE & PyData Berlin 2023

πŸ“… 2023-04-19

πŸ‘€ Jeremy Tuloup

About

πŸ§‘β€πŸš€ Technical Director at QuantStack

🟠 Core Jupyter Developer

History

Interactive Computing

  • Compose
  • Submit
  • Run
  • Output
  • View
  • Repeat

IPython: the Terminal as a UI

  • The terminal is a user interface!
  • Challenges:
    • No narrative
    • No memory
    • No reproducibility and communication

REPL: Read Eval Print Loop

Why is the Jupyter Notebook useful?

  • Maintain full interactive computing workflow
  • Adds:
    • narrative
    • memory
    • repoducibility
    • communication

IPython

fit

Jupyter Notebook

  • Millions of users
  • Millions of notebooks on GitHub
  • Heavily used in data, science, education, finance...

Working with a Notebook

  • Client / Server Architecture
  • Standard file format
  • Kernels for execution

The Jupyter Protocol

Classic Notebook

  • Released in 2015 as a successor to the IPython Notebook
  • Built with jQuery, RequireJS, Bootstrap

JupyterLab

  • Next Gen Notebook Interface (and more)
  • Extensible Computing Environment
  • Built on modern web technologies

image

The state of the Classic Notebook

  • Very few maintainers, very little time
  • But new issues were still coming up on the jupyter/notebook repository, but rarely got any replies
  • New weekly meeting to triage issues
  • [DISCUSS] How to improve supportability of the repo? https://github.com/jupyter/notebook/issues/5360

The Reality

  • Simplicity is a feature (less is more)
  • Still lots of users of the Classic Notebook, especially in education
  • Document-centric interface helps remove the noise and focus on the content
  • The "tabs-in-tabs" can be confusing (the web browser already has tabs)

Problems

  • The Classic Notebook has been unmaintained for years
  • It was very difficult to extend and make different extensions co-exist
  • Built on "old" web technologies (jQuery)
  • And still a lot of people using it!

The initial plan was to sunset Notebook πŸŒ…

The current plan is to sunrise Notebook β˜€οΈ

Jupyter Enhancement Proposal 79

RetroLab

  • Started end of 2020
  • https://github.com/jupyterlab/retrolab
  • Built with JupyterLab components and extensions
  • But keep the Classic Notebook look and feel
  • "RetroLab running on Jupyter Server will be the basis for Notebook v7."

Keep the Classic Notebook look and feel

center

New Features

  • πŸ§ͺ Many coming from JupyterLab automatically
  • 🧩 Mime extensions
  • πŸ› Debugger
  • πŸ“ Accessibility (CodeMirror 6)
  • 🎨 Theming and Dark Mode
  • πŸ“‘ Built-in Table of Contents
  • πŸ’‘ Can be used in JupyterLite
  • πŸ‘₯ Real Time Colaboration (demo)

Demo

Extensions

  • What about popular extensions like RISE and nbgrader?

fit

JupyterLab Extensions

Migration

Migration Banner

  • NBclassic and Notebook 6.5.x show a banner to encourage users to migrate to Notebook 7

center

Server logs

center

Current State

  • Jupyter Notebook 7.0.0b0 is available
  • Install it with pip: pip install --pre notebook
  • Install it with conda: conda install -c conda-forge/label/notebook_beta notebook
  • Please test and report issues and feedback!

Where is development happening?

What's next

  • Blog post about Notebook 7 and the Migration Guides
  • Notebook 7 Release Candidates
  • JupyterLab 4 final release expected for JupyterCon 2023 early May 2023
  • Notebook 7 final release expected after JupyterLab 4 (date TBC)

How can I help?

Thanks!

Special thanks to the Notebook Team and the authors of the JEP:

Eric Charles, Sylvain Corlay, Afshin Darian, Sharan Foga, Eric Gentry, Kevin Goldsmith, Brian Granger, Jason Grout, Fernando PΓ©rez, Zach Sailer, Rosio Reyes, Jeremy Tuloup

And to the broader Jupyter Community!

JupyterCon 2023

May 10-12, 2023 - CitΓ© des Sciences, Paris

jupytercon.com

image

Resources

You can find the slides on GitHub: