
Jupyter Notebook User Experience Survey - po84
http://blog.jupyter.org/2015/12/22/jupyter-notebook-user-experience-survey/
======
ericjang
What would be really amazing is if Jupyter's notebook server was abstracted
further from a general cell-based execution model, and instead provided a
generic graphics backend for making web-based GUIs for a variety of
programming languages.

Sort of like a combination of GFX.js:
[https://github.com/clementfarabet/gfx.js/](https://github.com/clementfarabet/gfx.js/)
and PyWidgets, except widgets are no longer constrained to a single cell and
the interface is not limited to cells.

This would make it really easy to prototype IDEs and other programming tools
in the browser or on native clients - in general it's pretty hard to write an
IDE or graphical tool because one needs to integrate system calls to whatever
graphics frontend they are writing. However, Jupyter's kernel architecture
gives that away for free.

------
lqdc13
It's a great piece of software.

Starting with Ipython Notebook, but a little unwieldy sometimes. I really hope
they keep improving. It seems like all the cool features were introduced early
on and then over time there has been almost no progress in the areas I've been
using it for.

Some of my criticisms that I hope somone has a good workaround for for now:

Issues I have with it that are not bugs:

\- Have to keep a separate firefox profile so that the notebooks don't get
lost among other tabs. Maybe a separate built-in Firefox profile or chromium
browser would help or maybe its own built in browser that would make it more
of an IDE.

\- Stores data frames and such in memory. Not clear which variables are taking
up all the space. I guess restart the kernel... This is not as much of a
problem with Ipython because those sessions tend to be more ephemeral. So
tracking of variables by memory usage would be wonderful.

\- Freedom to edit any cell results in a bit of a mess quickly with out of
order execution of things. Probably some kind of organizational strategy they
could encourage through the UI would be great. Otherwise, reading others'
notebooks is impossible unless they polished it for some time.

\- Scrolling is really bad if a command created a lot of output.

\- Searching through worksheet is not intuitive. Always have to look up
ipython manual.

Issue that I think is a bug and is the major reason I'm not using it more
often:

\- Cannot reload modules easily. %load_ext autoreload %autoreload 2 doesn't
work. %autoreload 1 doesn't work.

Tested on OSX and Linux.

Sometimes after messing with it for a while it starts working for a bit but
then segfaults. I should look into this more.

Same problem with ipython, but this is more of an issue with the notebook
because it has more of a permanent state than terminal sessions. You end up
having to restart the kernel and lose everything in memory, which is the main
reason to use the notebook in the first place.

It would be really cool if there was a feature that let you know when you
modified a function but are using the result of it that was obtained before
modifying it. Or if you modified a module but are using the old version.

~~~
guidopallemans
> separate firefox profile...

Is it possible to run it in a tab-less chrome/ff instance through arguments?
If not, this should be possible.

------
michaf
Jupyter Notebooks are great, I use them a lot for scientific computing and
data analysis.

The critical missing features in my opinion are 'undo' and proper integration
with Git (or another VCS).

------
746F7475
So what is the usual usecase for these Jupyter notebooks? I see everyone
praising them, but I still don't really know a good use case. I thought about
using it as notebook for work stuff, but I don't want to run something in
command line and then in browser to make a simple note when I can just open
vim and make a quick note

~~~
bgribble
Recent use for me:

Semi-technical boss comes to me and says "Hey look! I wrote this cool SQL
query to figure out what time of day our service is being used most. Can you
turn it into a heatmap?"

And of course you know if you do something like this once, you will be asked
to do it again, until pretty soon you will be expected to do it automatically
every week or something.

So: Jupyter notebook to the rescue. Query the DB, wave hands a few times,
produce a heatmap (total lines of python: about 10). Then give boss the
notebook and tell him if he wants to update or modify, have at it, here's
where your query is.

I never have to deal with it again, it's self-documenting and transparently
future-friendly (anybody with an ounce of sense can edit it) and it looks all
mathematica and stuff. Case closed.

------
lunchladydoris
Jupyter is awesome. However, something about the orange in the colour theme
just makes the interface seem so dull to me.

~~~
spot
try Beaker: [http://BeakerNotebook.com](http://BeakerNotebook.com) we have a
modern interface & the next release will have a dark color theme too, easily
accessible from a menu item:
[https://twitter.com/beakernotebook/status/682233629460795393](https://twitter.com/beakernotebook/status/682233629460795393)

~~~
stared
I've heard it a few times on HN (are you its dev?). Can you name so advantages
of Beaker over Jupyter?

~~~
spot
1) modern interface 2) polyglot architecture (multiple languages work together
in the same notebook) 3) native electron version

yes i am one of its developers.

here's an example of working with Python and D3/JavaScript together:
[https://pub.beakernotebook.com/#/publications/560c9f9b-14e6-...](https://pub.beakernotebook.com/#/publications/560c9f9b-14e6-4d95-8e78-cc0a60bf4e5a?fullscreen=false)

and the electron version: [https://github.com/twosigma/beaker-
notebook/wiki/Electron-Be...](https://github.com/twosigma/beaker-
notebook/wiki/Electron-Beaker)

------
pen2l
Sorry, silly question:

I've been out of the loop for some time it seems -- what is this 'Jupyter'? It
looks like it's basically ipython... how is it different from ipython? Is it
ipython2.0 in spirit or something?

~~~
ijager
They took the notebook part from IPython and made it language agnostic, this
is now Jupyter. You can use Jupyter Notebook together with many languages
(Jupyter Kernels) such as R, Julia, Bash and many more in addition to Python.

~~~
pen2l
Ahhh... thank you for explaining.

Including Bash, huh? I remember I used to think that if only a few things were
different in ipython I would actually use it as my main terminal window. With
Jupyter running bash, are people using it as their main terminal now?

~~~
ijager
Running a Bash kernel in Jupyter Notebook might be convenient if you are
running your Jupyter server on a remote machine. So you don't have to SSH into
the server for some quick changes, you can stay in your browser. I haven't
used it myself as I only use it locally.

~~~
pen2l
So actually the main reason I'm interested in ipython-style notebooks for my
terminal shell needs is the benefit of having... graphs! and pictures! and
other graphical things in a terminal shell setting. I'm willing to put up with
inconveniences you speak of if I can get the graphical things working well.
People have experimented with it, it seems:
[http://jeroenjanssens.com/2015/02/19/ibash-
notebook.html](http://jeroenjanssens.com/2015/02/19/ibash-notebook.html) I'll
look more into it now.

