1 of 33

I Like Notebooks

A Response to Joel Grus

Tim Hopper

Senior Data Scientist

Cylance, Inc

🐦 @tdhopper

💻 tdhopper.com

📧 tdhopper@gmail.com

🖥 bit.ly/jupyterday

2 of 33

bit.ly/jupyterday · @tdhopper

3 of 33

xkcd.com/386/

bit.ly/jupyterday · @tdhopper

4 of 33

5 of 33

bit.ly/jupyterday · @tdhopper

6 of 33

bit.ly/jupyterday · @tdhopper

7 of 33

8 of 33

“If you take one thing away from the talk it should be that ‘Data science code should follow the rules of good software engineering’”

Photo credit: (CC) Randy Stewart, blog.stewtopia.com.

bit.ly/jupyterday · @tdhopper

9 of 33

Jupyter would benefit from improvements to developer tooling

Linting

Auto-completion

RefactorinG

Testing

bit.ly/jupyterday · @tdhopper

10 of 33

Notebook

VERSION CONTROL

Photo credit: (CC) Randy Stewart, blog.stewtopia.com.

11 of 33

bit.ly/jupyterday · @tdhopper

12 of 33

bit.ly/jupyterday · @tdhopper

13 of 33

bit.ly/jupyterday · @tdhopper

14 of 33

bit.ly/jupyterday · @tdhopper

15 of 33

bit.ly/jupyterday · @tdhopper

16 of 33

bit.ly/jupyterday · @tdhopper

17 of 33

18 of 33

bit.ly/jupyterday · @tdhopper

19 of 33

20 of 33

21 of 33

22 of 33

hidden state that's easy to screw up and difficult to reason about

23 of 33

Joel’s Solution

bit.ly/jupyterday · @tdhopper

24 of 33

25 of 33

bit.ly/jupyterday · @tdhopper

26 of 33

REPL doesn’t encourage good software engineering practice either

bit.ly/jupyterday · @tdhopper

27 of 33

REPL + modules has the same issues as notebooks

bit.ly/jupyterday · @tdhopper

28 of 33

Python modules/packages are not beginner friendly

bit.ly/jupyterday · @tdhopper

29 of 33

Tools Have Tradeoffs

bit.ly/jupyterday · @tdhopper

30 of 33

http://www.macdrifter.com/2018/09/jupyter-notebooks-at-netflix.html

bit.ly/jupyterday · @tdhopper

31 of 33

32 of 33

Notebooks are bad because an aspect of them is challenging for beginners?

bit.ly/jupyterday · @tdhopper

33 of 33

Tim Hopper

Senior Data Scientist

Cylance, Inc.

🐦 @tdhopper

💻 tdhopper.com

📧 tdhopper@gmail.com

🖥 bit.ly/jupyterday