Any talk of Jupyter requires the following (often posted) talk from Joel Grus: <a href="https://docs.google.com/presentation/d/1n2RlMdmv1p25Xy5thJUhkKGvjtV-dkAIsUXP-AL4ffI/edit" rel="nofollow">https://docs.google.com/presentation/d/1n2RlMdmv1p25Xy5thJUh...</a><p>As someone who switched from Notebooks to script style coding for all of my data science, I couldn't a) agree more with most of his points and b) be happier that I made the switch.
IDE-style notebooks are a godsend for projects over a certain size threshold. They encourage people who aren't typically used to "programming in the large" to start folding unwieldy chunks of code into files, which in turn encourages them to experiment with the abstractions and structure that software engineers use to handle scale. Notebooks got this wrong, Jupyterlab (and RStudio) get it right, and it's a huge step forward!<p>That said, Jupyterlab has growing pains. Things like ipywidgets that used to Just Work now Just Don't -- if you want to use widgets as seen in the screenshots, you have to separately install npm, learn to grok the jupyterlab extension manager, and surf the version compatibility matrix between the backend ipywidgets you have installed and the frontend ipywidgets you have installed. Sigh. I'm sure it'll iron out in time, but every time I see the screenshot with widgets in it I have to clear my throat.
I write libraries in an ide and give examples in a notebook. Working in a cross platform environment is painful when gpu stuff doesn't work out of the box for everyone or when you need a way to poorly spread work across a compute cluster instead of using your local machine.<p>Actually, I hate python now because of this. I would kill for a proper tool for implementing requirements.txt like package.json(yarn) or pom.xml(maven) that worked on jupyter by defining a base image similar to docker. Pip+virtualenv just seems like a half-attempt
dannykwells' link has got all the good points for why a Jupyter Notebook is kinda disadvantageous, but what about the new Jupyter Lab?<p>It's not got support for simple code/header folding yet.
That's an issue.
If I describe this as an IDE in the browser that runs in debug/breakpoint/interactive execution mode by default, how wrong am I?<p>The interface also reminds me of RStudio somehow.<p>My own preference is to only use notebooks as an exploratory tool, debugging tool, or to make presentations. For any longer code or serious project that I'll write I'll stick to my traditional editor (emacs/vim/etc.). Call me old-fashioned?