HackerTube

I don't like notebooks.- Joel Grus (Allen Institute for Artificial Intelligence)

O'Reilly6 HN recommenders · recommended in 6 months, 2018–2025
YouTube
talk · intermediate · evergreen · 2018–2025 on HN

Joel Grus's JupyterCon talk explaining why he dislikes Jupyter notebooks. He covers hidden state, trouble with reproducibility and testing, and how notebooks frustrate teaching. He shows his preferred workflow and what Jupyter could change.

It is the go-to funny, irreverent critique of notebooks, linked whenever HN debates notebooks versus testable code.

12 comments from Hacker News

@kevsim2019-04 · in “How to separate your data from your code”

Jupyter notebooks are really abysmal when it comes to best engineering practices. There's an amazing talk called "I don't like notebooks" by Joel Grus at last years JupyterCon [0]. I highly recommend it. [0] ▶ this video

Strongly recommends View on HN
@tcpekin2018-10 · in “Why Jupyter is data scientists’ computational notebook of choice”

Here they are - they're definitely irreverent, but I find myself strongly agreeing with everything he says. link ▶ this video

Strongly recommends View on HN
@lelandbatey2024-06 · in “Notebooks Are McDonalds of Code”

REPL stands for Read–eval–print loop link A REPL, by its name, is a very narrow version of the broader paradigm of interactive computer programming environments. But Notebooks are not REPLs, unless you use REPL to mean "interactive programming environment" and not REPL. Notebooks are much broader than a REPL! In a notebook, you can go back and edit and run individual lines of the notebook without re-running the whole notebook from the start and without re-computing everything that depends on what you just edited. Behavior like this makes it super hard to track the actual state, and super easy to lose track of how things are how they are. That's pretty terrible! The parent article links this great talk that goes into more detail than the parent post and is much easier to understand: ▶ this video

Recommends View on HN
@carreau2022-01 · in “IPython 8.0”

First, yes, this is a common question. IPython does not try to deal with that, it's just the executing engine. Notebooks, do not have to be stored in ipynb form, I would suggest to look at link , and notebook UI is inherently not design for multi-file and application developpement. So training humans will always be necessary. Technically Jupyter Notebook does not even care that notebooks are files, you could save then using say postgres ( link ) , and even sync content between notebooks. I'm not too well informed anymore on this particular topic, but there are other folks at link that might be more aware, you can also ask on discourse.jupyter.org, I'm pretty sure you can find threads on those issues. I think on the Jupyter side we could do a better job curating and exposing many tools to help with that, but there are just so many hours in the day... I also recommend I don't like notebook from Joel Grus, ▶ this video it's a really funny talk, a lot of the points are IMHO invalid as Joel is misinformed on how things can be configured, but still a great watch.

Recommends View on HN
@softwaredoug2021-06 · in “Ask HN: How do you run long computations without interruption?”

Get extensive code out of notebooks into testable libraries. Confirm it works before running a big computation. We try to keep our notebooks slim and factor anything complex into a Python library. We can experiment with this libraries implementation, write unit tests on smaller data sets to confirm it works, before doing a bigger experiment. We can also deploy the library to prod and ensure users get the exact same thing we experimented with. I would recommend the talk “I don’t like notebooks” ▶ this video (There’s also the alternative nbdev that creates a full software engineering and experimentation setup in 100% notebooks. Not something I particularly like, but it might be another option.)

Recommends View on HN