<story><title>Why Jupyter is data scientists’ computational notebook of choice</title><url>https://www.nature.com/articles/d41586-018-07196-1</url></story><parent_chain><item><author>makmanalp</author><text>The majority of the complaints I hear about notebooks I think come from a misunderstanding of what they&amp;#x27;re supposed to be. It&amp;#x27;s a mashup between a scientific paper and a repl. So it&amp;#x27;s useful for a bit of both:&lt;p&gt;a) Just like with a paper, you can present scientific or mathematical ideas with accompanying visualizations or simulations. From the REPL side, as a bonus, you get interactivity, and the reader can pause and experiment with the examples you&amp;#x27;re giving to improve their understanding or test their hypotheses. If I change this variable, how will the system react? You can just try it!&lt;p&gt;b) Just like with a REPL, you can type in and execute commands step by step, viewing the output of the previous command instead of running the whole thing at once. From the document side, as a bonus, you get nicer presentation (charts, interactivity, nice and wide sortable tables, etc) than you would in a shell, which comes in handy when doing things like data exploration or mathematical simulation.&lt;p&gt;It&amp;#x27;s decidedly NOT there for you to type all your code in like an editor and make a huge mess. It&amp;#x27;s apples and oranges w.r.t and a poor substitute for something like PyCharm or VS Code or vim. It is there for you to a) try things out yourself, and whatever you discover hopefully eventually make it into proper python modules b) make interesting ideas presentable and explorable for others. That&amp;#x27;s all!&lt;p&gt;When I see stuff like &amp;quot;out of order execution is confusing&amp;quot;, I don&amp;#x27;t disagree, but it does make me wonder how long and convoluted the notebooks these people work with are - probably a ripe candidate to refactor stuff out into python modules as functions. When I see stuff around notebooks for &amp;quot;reproducibility&amp;quot;, I&amp;#x27;m a bit confused in that notebooks often don&amp;#x27;t specify any guidance on installation and dependencies, let alone things like arguments and options that a regular old script would. In that regard I think it&amp;#x27;s barely an improvement over .py files lying around. When I hear &amp;quot;how do I import a notebook like a python module&amp;quot;, I&amp;#x27;m very very scared.&lt;p&gt;Granted, I&amp;#x27;ve seen huge notebooks that are a mess, so I understand the frustration, but it&amp;#x27;s not like we all haven&amp;#x27;t seen the single file of code with 5000 lines and 10 nested layers of conditionals at some point in our lives.</text></item></parent_chain><comment><author>neuromantik8086</author><text>&amp;gt; When I see stuff around notebooks for &amp;quot;reproducibility&amp;quot;, I&amp;#x27;m a bit confused in that notebooks often don&amp;#x27;t specify any guidance on installation and dependencies, let alone things like arguments and options that a regular old script would.&lt;p&gt;At the core of this, as some others may have already alluded to already, is that many academic scientists have not been socialized to make a distinction between development and production environments.  Jupyter notebooks are clearly beneficial for sandboxing and trying out analyses creatively (with many wrong turns) before running &amp;quot;production&amp;quot; analyses, which ideally should be the ones that are reproducible.  For many scientific papers, the analysis stops at &amp;quot;I was messing around in SPSS and MATLAB at 3 AM and got this result&amp;quot; without much consideration for reformulating what the researcher did and rewriting code&amp;#x2F;scripts so that they can be re-run consistently.</text></comment>
<story><title>Why Jupyter is data scientists’ computational notebook of choice</title><url>https://www.nature.com/articles/d41586-018-07196-1</url></story><parent_chain><item><author>makmanalp</author><text>The majority of the complaints I hear about notebooks I think come from a misunderstanding of what they&amp;#x27;re supposed to be. It&amp;#x27;s a mashup between a scientific paper and a repl. So it&amp;#x27;s useful for a bit of both:&lt;p&gt;a) Just like with a paper, you can present scientific or mathematical ideas with accompanying visualizations or simulations. From the REPL side, as a bonus, you get interactivity, and the reader can pause and experiment with the examples you&amp;#x27;re giving to improve their understanding or test their hypotheses. If I change this variable, how will the system react? You can just try it!&lt;p&gt;b) Just like with a REPL, you can type in and execute commands step by step, viewing the output of the previous command instead of running the whole thing at once. From the document side, as a bonus, you get nicer presentation (charts, interactivity, nice and wide sortable tables, etc) than you would in a shell, which comes in handy when doing things like data exploration or mathematical simulation.&lt;p&gt;It&amp;#x27;s decidedly NOT there for you to type all your code in like an editor and make a huge mess. It&amp;#x27;s apples and oranges w.r.t and a poor substitute for something like PyCharm or VS Code or vim. It is there for you to a) try things out yourself, and whatever you discover hopefully eventually make it into proper python modules b) make interesting ideas presentable and explorable for others. That&amp;#x27;s all!&lt;p&gt;When I see stuff like &amp;quot;out of order execution is confusing&amp;quot;, I don&amp;#x27;t disagree, but it does make me wonder how long and convoluted the notebooks these people work with are - probably a ripe candidate to refactor stuff out into python modules as functions. When I see stuff around notebooks for &amp;quot;reproducibility&amp;quot;, I&amp;#x27;m a bit confused in that notebooks often don&amp;#x27;t specify any guidance on installation and dependencies, let alone things like arguments and options that a regular old script would. In that regard I think it&amp;#x27;s barely an improvement over .py files lying around. When I hear &amp;quot;how do I import a notebook like a python module&amp;quot;, I&amp;#x27;m very very scared.&lt;p&gt;Granted, I&amp;#x27;ve seen huge notebooks that are a mess, so I understand the frustration, but it&amp;#x27;s not like we all haven&amp;#x27;t seen the single file of code with 5000 lines and 10 nested layers of conditionals at some point in our lives.</text></item></parent_chain><comment><author>taeric</author><text>You parting &amp;quot;Granted...&amp;quot; is precisely what fills me with dread when I see notebooks.  Yes, I have seen poorly done source files.  I made more than a few myself.  However, many of the practices we have grown into as sound programming advice seem to be largely thrown out the window for these notebooks.&lt;p&gt;The irony, to me, is that I actually typically argue for the mixing of presentation and content.  But to me, notebooks look like an attempt by people to make a WYSIWYG out of JUnit&amp;#x2F;TestNG&amp;#x2F;whatever style reports.  Only, without the repeatability.&lt;p&gt;There is also the entire bend where these are taking off in a way that doesn&amp;#x27;t make sense.  Do they do the things you are saying?  Well, yeah.  But no better than plenty of tools before them.  Mathematica and Matlab both had &amp;quot;notebook&amp;quot; like features for a long long time.  Complete with optimized libraries.  And this is ignoring the interactivity of the old LISP machines.  (You can see from my history I have a soft spot for emacs org-mode.)&lt;p&gt;Jupyter is a lot of things.  Bad isn&amp;#x27;t necessarily one of them, but exceptional isn&amp;#x27;t, either.  Heavily marketed is.</text></comment>