[IPython-dev] Quick question out of interest...

Brian Granger ellisonbg at gmail.com
Sun Jan 26 15:25:10 EST 2014


I can't speak for the multi-panel UI trends in other dev environments,
but can fill in some thoughts about the notebook UI.

The abstraction the notebook UI represents is that of a document.

* Linear sequence of content that is designed to be read by a human reader.
* Something that tells a story about something - usually of a highly
technical nature.
* Something that can easily be converted to other document types
(HTML, LaTeX/PDF, Markdown/rst, slideshow).

Thus, the goal of our UI is to enable users to create and work with
these documents. But that alone doesn't imply that our UI has to be
simple and single pane. Why do we do that?

* Cognitive load. The human mind can only keep so much in the air at a
time. Most of our users are solving extremely difficult technical
problems with the notebook. They need to be able to put their entire
focus on those technical problems. A complex multi-pane adds to their
cognitive load.
* Visual complexity. When the eyes sees something that is visually
complex, it requires the brain to process all of that information.
Again that pulls the user away from the problems they are trying to
solve.
* Research that has show that simple, prototypical user interfaces are
deemed more aesthetically beautiful:

http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/pubs/archive/38315.pdf

* The Notebook is a component. Our notebook UI is used in other, more
complex web applications. Keeping the core UI simple allows other
people to use it as a component without the overall complexity getting
out of hand.
* User content is king. When someone looks at a notebook, we want the
focus to be on the user content, not the UI surrounding it.
* Beginning users. We want the notebook to be usable by high school
students with little to no instruction about the UI.
* Widgets. The new widgets in IPython 2.0 will introduce significant
amounts of functional and visual complexity to notebook documents. In
order to keep the overall complexity bounded, the rest of the UI has
to be dead simple.
* Our design skills. We are not skilled designers by any means. Thus,
the more things we try to design, the uglier it gets.

On Sat, Jan 25, 2014 at 6:14 PM, Carl Smith <carl.input at gmail.com> wrote:
> Thanks for taking the time to answer Thomas. Your sense that building
> complex applications works better in a less linear interface is interesting,
> though I was really aiming to figure out what people gain from using them
> for interactive programming, but it seems it's not so much about that side
> of things in practice.
>
> Thanks again for taking the time.
>
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
>



-- 
Brian E. Granger
Cal Poly State University, San Luis Obispo
bgranger at calpoly.edu and ellisonbg at gmail.com



More information about the IPython-dev mailing list