Hacker News new | past | comments | ask | show | jobs | submit login
5 reasons why jupyter notebooks suck (medium.com/alexander.mueller)
15 points by dice89 on March 24, 2018 | hide | past | favorite | 13 comments



My preferred workflow with Jupyter is for code to start in the notebook but to regularly move the code into Python files as soon as it works. So the code that lives in the notebook represents the "exploration frontier" of my research but the remainder of the pipeline code stays in Python files where it can be edited with an IDE, linted, tested, etc.

I also realize that English is not the author's first language but the tone of this comes off unnecessarily negative to the (mostly/entirely volunteer) developers of Jupyter.


Jupyter has an enormous amount of funding (over 10 million at this point, I think) from Moore, Sloane, Bloomberge, Continuum Analytics, etc. It's far from mostly vounteer work. It's a great contribution by foundations and companies to humanity that's been an enormous amount of hard work.

Notebooks suck for some things, and they are absolutely fantastic for others.


> Notebooks suck for some things, and they are absolutely fantastic for others.

Speaking of which, I recognize your name :). Thanks for SAGE! It was my first introduction to the power of a code notebook.


> 4. The non-linear workflow of Jupyter

This has always seemed crazy to me for something that is called a notebook and seems designed for exploratory analysis. It seems like there should be a record of the order cells were run, and what their contents were when they were run, unless you have chosen "Kernel > Restart & Run All". Also, why isn't that command given prime importance with at least a button in the toolbar?

I thought I was just using Jupyter wrong, so it is a little surprising to see the same complaint from someone who has used it "roughly 3 years up to 60% of my time".

I like the model of using RStudio with KnitR. I rerun the entire document every now and then to make sure it accurately describes the thought process in a coherent narrative. I can cache results of operations that take a long time, but doing that is explicit, and the command to do so can be found in the code, rather than a consequence of an unrecorded action.


In CoCalc, I did a complete new implementation of Jupyter notebooks from scratch, but with tracking of exactly when each cell runs, and all past states of the notebook with a slider to move through them.


In fact I use Jupyter almost exclusively for Sage, though too infrequently to get a subscription to CoCalc.

Incidentally it isn't clear to me how I can get the Sage kernel into another installation of Jupyter, or other kernels into the Jupyter installation embedded in sageMath. If I used Jupyter instead of R/RStudio or Julia/Juno the draw would be having the different toolsets and their environments all accessible in one primary interface.


Are people really running jupyter notebooks in some sort of production system? I was always under the impression that the idea was to do some exploratory work in the notebook and test out some basic functionality. After this it should just be a matter of copying the code to an actual module, and add tests as desired (though I don't necessarily subscribe to TDD per se).


I have never come across someone who does that.

I fee like the article is a response to an imaginary problem a la "5 Reasons why Regular Expressions suck: 1-4 They make it hard to parse HTML".


Jupyter notebooks are meant for code sharing so that you don't have to run the code yourself to see what it does.

If you are using them for something they were not intended for then yes, they do suck.


There is an excellent talk by Brett Cannon about this sort of post on open-source projects getting to the top of Hacker News.

I would recommend it to anyone interested in this: https://www.youtube.com/watch?v=y19s6vPpGXA


I thought Jupyter Notebooks were pretty much left in favor of Jupyter Lab.

JupyterLab: https://github.com/jupyterlab/jupyterlab


This makes no sense, because JupyterLab provides Jupyter notebooks as one of the key file types.


With regards to point 2, doesn't PyCharm have Jupyter integration now?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: