
JupyterLab - l2dy
https://jupyterlab.readthedocs.io/en/stable/
======
dannykwells
Any talk of Jupyter requires the following (often posted) talk from Joel Grus:
[https://docs.google.com/presentation/d/1n2RlMdmv1p25Xy5thJUh...](https://docs.google.com/presentation/d/1n2RlMdmv1p25Xy5thJUhkKGvjtV-
dkAIsUXP-AL4ffI/edit)

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.

~~~
tgb
Just two days ago working in Rstudio, thought my script ran fine, but actually
the data loading part failed but Rstudio charges on despite errors and runs
the rest of the script on the data that was still in memory from another
script I had run the day before!

But I don't have a satisfactory solution to handle the problem where Step A
takes a few minutes or longer to complete and so I don't want to keep re-
running it while coding Step B. I resort to copy-and-pasting Part B into
ipython which amounts to being a poor-man's notebook. Obviously the "correct"
answer is to write out the results of A to disk but this is can be a lot of a
pain while you're developing! (Eg: loading an excel sheet in pandas is slow,
while the equivalent tab-separated sheet is very fast, but I don't really want
to have a separate step pre-processing all excel sheets into tsv files.) Also,
pandas to_csv/read_csv functions aren't even inverses of each other (they lose
the index) so writing to desk requires extra steps. (And from_csv is
deprecated.)

What I'd rather have is "half" a notebook where I can checkpoint a computation
part way through and restart from there. But only ever proceed linearly
through the code to avoid notebook out-of-order confusion.

~~~
xapata
While the to_csv method and read_csv function aren't inverses by default, they
can be with one keyword argument. Design mistake, but it's not terrible.

------
jjoonathan
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!

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.

------
useful
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.

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

~~~
santoriv
You should check out Binderhub - it uses RepoToDocker to generate a Dockerfile
containing all the dependencies listed in requirements.txt in a git
repository. Then it spins up a Jupyter Notebook server running in a Docker
container with all of your dependencies installed.

[https://mybinder.org/](https://mybinder.org/)

------
reallymental
dannykwells' link has got all the good points for why a Jupyter Notebook is
kinda disadvantageous, but what about the new Jupyter Lab?

It's not got support for simple code/header folding yet. That's an issue.

~~~
ArthurBrussee
Why are we going through all this trouble to make something that in the best
case is not worse than existing IDEs?

I can't help but feel that a visualization window + a cacheResult(data,
fileName) function would be superior to what Jupyter can ever hope to be

------
LonelyBanana
If I describe this as an IDE in the browser that runs in
debug/breakpoint/interactive execution mode by default, how wrong am I?

The interface also reminds me of RStudio somehow.

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?

------
wodenokoto
Is there a new version out, or is there any particular reason to post this?

