I agree with most of the points everyone's making here, and just wanted to add some from my experiences as I both teach and use notebooks professionally and have taught with spyder. (+ pro / - con) I tried to at least address the same topics as in Joel Grus' talk.
Teaching [Undergraduate and Graduate python-based courses using Notebooks/Spyder] - the hidden stateness always trips up students (and sometimes me) as Joel points out - the hidden stateness is hard to teach; I have to use a lesson on REPL vs standard interpreter to get the idea across. - file saving/loading is a bit clunky and confuses students vs spyder's approach they grok better (similar to Word or Powerpoint...) - starting/stopping an instance is confusing to students because the server is separate from the GUI + students find the label-code-output serialization easy to follow, much more-so than spyder with numbered files and slides + the faster students like being able to easily scroll ahead until they don't know something, then work on their own. With spyder I would lose some of the faster students. + one file / one lesson (All the cons are teachable, and they do get it in the end, but it's just more cognitive hurdles.) (Also, I think some of this may be solved using the Jupyter NB IDE that ships with Anaconda? I've seen screecaps of something nifty-looking out there) Git - NB plays poorly with git due to in-file binary blobs + I do it anyway + Once it's online, you can use nbviewer - it's like an informal publication with comments, code, and results! Professionally + NBs are good for prototyping or trying things out because they let me quickly scaffold code in a messy fast way + Unit testing is straightforward "make a new cell to test stuff" + NB to final production is easy: With the smallest bit of care, the multi-cell NB I've made I download as *.py and immediately can import it like a module in my production code and use it as a library! This also addresses Joel's final comments on how to hide messy stuff from decision-makers. + Vim-like code and cell navigation and manipulation is so nice! + There are kernels for everything under the sun, making teaching and exploration with a consistent user experience very nice. Never Experienced as NB issue * encouraging bad habits and discouraging good habits: I like that it encourages comment cells. The resulting *.py module plays nicely with git. * NB tooltips are bad vs IDE: I teach students to look up documentation, or use the help(), and the dir/file completion is really nice. * copy and paste between different media is hard: copying from web with mangled quotes for example always bites students no matter what. - Jory ------------------------------------------ The Carpentries: discuss Permalink: https://carpentries.topicbox.com/groups/discuss/T1505f74d7f6e32f8-M6993446724073d387014c5a3 Delivery options: https://carpentries.topicbox.com/groups/discuss/subscription
