A Brief History of Jupyter Notebooks William Horton Two difgerent - - PowerPoint PPT Presentation

a brief history of jupyter notebooks
SMART_READER_LITE
LIVE PREVIEW

A Brief History of Jupyter Notebooks William Horton Two difgerent - - PowerPoint PPT Presentation

A Brief History of Jupyter Notebooks William Horton Two difgerent worlds of Python What is a Jupyter Notebook? Why? My personal journey Jupyter Notebooks go mainstream This talk: I. Past II. Present III. Future What this talk is not


slide-1
SLIDE 1

A Brief History of Jupyter Notebooks

William Horton

slide-2
SLIDE 2

Two difgerent worlds of Python

slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6

What is a Jupyter Notebook?

slide-7
SLIDE 7
slide-8
SLIDE 8

Why?

slide-9
SLIDE 9

My personal journey

slide-10
SLIDE 10
slide-11
SLIDE 11

Jupyter Notebooks go mainstream

slide-12
SLIDE 12

This talk:

  • I. Past
  • II. Present
  • III. Future
slide-13
SLIDE 13

What this talk is not about

slide-14
SLIDE 14

How to use Jupyter Notebooks

slide-15
SLIDE 15

Introductory material for Jupyter notebooks

https://realpython.com/jupyter-notebook-introduction/

slide-16
SLIDE 16

Loving or Hating Jupyter Notebooks

slide-17
SLIDE 17

Joel Grus

slide-18
SLIDE 18

The First Notebook War

https://www.youtube.com/watch?v=QR7gR3njNWw

slide-19
SLIDE 19

Past

slide-20
SLIDE 20

(Apologies to all the former science Ph.D’s out there)

slide-21
SLIDE 21
slide-22
SLIDE 22
slide-23
SLIDE 23

Mathematica (1988)

Created by Stephen Wolfram Notebook interface designed by Theodore Gray An all-in-one system: language (Wolfram), execution environment, scientific libraries

slide-24
SLIDE 24
slide-25
SLIDE 25
slide-26
SLIDE 26
slide-27
SLIDE 27
slide-28
SLIDE 28

Key architectural details of Mathematica Notebooks

Two parts to the system: kernel and front-end The front-end sends the input to the kernel, which returns the result, which is displayed Mathematica notebooks are objects that can be manipulated by Mathematica programs

slide-29
SLIDE 29

The Mathematica Notebook Interface

slide-30
SLIDE 30
slide-31
SLIDE 31
slide-32
SLIDE 32

Going further back...

slide-33
SLIDE 33
slide-34
SLIDE 34

Literate Programming

Donald Knuth Implemented the “WEB” system Concepts of “tangled” and “woven”

slide-35
SLIDE 35

Maple

Scientific computing environment + programming language First GUI for Maple released in 1989 1992 -- release of the “worksheet” interface: “Beginning with the Macintosh user interface for Maple V, the new user interfaces will all support the concept of a "worksheet" which integrates text, Maple input commands, Maple output, and graphics into one document.”

slide-36
SLIDE 36
slide-37
SLIDE 37

https://sites.math.rutgers.edu/courses/251/Maple/Help/errors2.html

slide-38
SLIDE 38

Maple vs Mathematica

slide-39
SLIDE 39
slide-40
SLIDE 40
slide-41
SLIDE 41
slide-42
SLIDE 42
slide-43
SLIDE 43

Rise of Open Source

slide-44
SLIDE 44

SciPy + IPython + Matplotlib

SciPy (2001): Created by Travis Oliphant, Eric Jones, and Pearu Peterson, it was a combination of scientific libraries for Python on top of the Numeric array type (later replaced by NumPy) IPython (2001): “The IPython project provides on enhanced interactive environment that includes, among other features, support for data visualization and facilities for distributed and parallel computation” (from “IPython: A System for Interactive Scientific Computing”, 2007)

slide-45
SLIDE 45

SciPy + IPython + Matplotlib (cont.)

Matplotlib (2003): “It was conceived by John Hunter in 2002, originally as a patch to IPython to enable interactive MatLab-style plotting via gnuplot from the IPython command-line. Fernando Perez was, at the time, scrambling to finish his PhD, and let John know he wouldn’t have time to review the patch for several months. John took this as a cue to set out on his own, and the matplotlib package was born, with version 0.1 released in 2003.” (https://jakevdp.github.io/blog/2013/03/23/matplotlib-and-the-future-of-visualization-in-python/)

slide-46
SLIDE 46

Fernando Perez

Created IPython in 2001 as a graduate student Currently: Associate Professor, Statistics, UC Berkeley and Berkeley Institute for Data Science Senior Fellow Recipient of the 2012 Award for the Advancement of Free Software from the Free Software Foundation, and the 2017 ACM Software System Award

slide-47
SLIDE 47

Sage (2005)

slide-48
SLIDE 48

Sage cont.

Created by William Stein Implemented in Python and Cython Open Source license (GPLv3)

slide-49
SLIDE 49

Sage Notebook/Worksheets

Screenshots from a tutorial circa 2012 (

http://doc.sagemath.org/html/en/prep/Intro-Tutorial.html#sagenbcommands)

slide-50
SLIDE 50
slide-51
SLIDE 51
slide-52
SLIDE 52

IPython Notebook (2011)

slide-53
SLIDE 53
slide-54
SLIDE 54

Project Jupyter (2014)

slide-55
SLIDE 55

Jupyter Ju(lia) + Pyt(hon) + R

slide-56
SLIDE 56

Project Jupyter (2014)

Spun off of IPython by Fernando Perez Includes the Notebook interface and other language-agnostic parts of IPython

slide-57
SLIDE 57

Present

slide-58
SLIDE 58

Jupyter Notebook

slide-59
SLIDE 59

JupyterLab

slide-60
SLIDE 60
slide-61
SLIDE 61

Voilà

slide-62
SLIDE 62

Binder

slide-63
SLIDE 63

Broad language support

slide-64
SLIDE 64
slide-65
SLIDE 65

Google Colab

slide-66
SLIDE 66

Github rendering

slide-67
SLIDE 67
slide-68
SLIDE 68

Future(?)

slide-69
SLIDE 69

More IDE-like Jupyter and more Jupyter in IDEs

JupyterLab 2.0 -- released April 2020 Added JupyterLab Language Server Protocol + Debugger VSCode shipping improved native support for Jupyter Notebooks

slide-70
SLIDE 70

Hosted solutions/notebook as an interface to compute

slide-71
SLIDE 71

Real-time collaboration

slide-72
SLIDE 72

How to review & work with git?

slide-73
SLIDE 73
slide-74
SLIDE 74
slide-75
SLIDE 75

Conclusion

@hortonhearsafoo