
I don't like notebooks.- Joel Grus (Allen Institute for Artificial Intelligence)
About this video
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.
Why it appears in the archive
It is the go-to funny, irreverent critique of notebooks, linked whenever HN debates notebooks versus testable code.
AI-generated summary and labels from the source dataset; verify important details against the video. Source & credits.
From the Hacker News discussion
Here they are - they're definitely irreverent, but I find myself strongly agreeing with everything he says. [LINK] [VIDEO]
Read original comment ↗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] [VIDEO]
Read original comment ↗If you haven't yet: I think both talks are very worth watching: I don't like notebooks ( [VIDEO] ) by Joel Grus I like notebooks ( [LINK] ) by Jeremy Howard notebooks are a very interesting medium and they have both shortcomings as well as things they are great at and neither were totally obvious to me.
Read original comment ↗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” [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.)
Read original comment ↗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, [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.
Read original comment ↗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: [VIDEO]
Read original comment ↗You're not the only one. Here are slides from a talk that Joel Grus gave at JupyterCon 2018 titled "I hate Jupyter Notebooks": [LINK] Video of talk: [VIDEO]
Read original comment ↗It completely fixes a huge number of the gripes in the JupyterCon talk I don't like notebooks by Joel Grus. The primary complaint there is that notebooks have a disconnect between the state of the program and the display of the cells. By using a completely reactive mode the state is no longer hidden. It's more akin to a spreadsheet than a notebook. A number of other complaints are completely circumvented by using a file format that's simply a pure Julia file with clever comments. Video: [VIDEO] Slides: [LINK] Previous discussion: [LINK]
Read original comment ↗