[IPython-dev] Re: notebook composition UI thoughts
Robert Kern
rkern at ucsd.edu
Wed Jul 6 13:22:08 CDT 2005
Michael Tobis wrote:
> John Hunter has mentioned the IPython notebook effort to me a couple
> of times. I've been thinking about the Mathematica user interface for
> years, and I think it is flawed. I hope that eventually IPython can do
> better, and I think the steps being plotted out for the short term
> move in the right direction.
>
> A Mathematica notebook serves two primary purposes, which are at odds
> with each other. The first is as an interactive environment for
> exploration of mathematical and algorithmic ideas, and the second is
> as an environment for the development and presentation of formal
> exposition of the ideas so developed.
>
> Consider this Mathematica session, obtained by simply moving the
> insertion point between the second and third inputs:
>
> ==>
> In[1]:= x = 5
>
> Out[1]= 5
>
> --
>
> In[3] = x * x
>
> Out[3]= 36
>
> --
>
> In[2]:= x = 6
>
> Out[2]= 6
> <==
>
> I save it and get the notebook
>
> ==>
> x = 5
>
> 5
>
> --
>
> x * x
>
> 36
>
> --
>
> x = 6
>
> 6
> <==
>
> Of course, when I recalculate the cells, the order of execution
> changes and the second result is the expected 25. There are far more
> confusing results that are similar in concept but much more confusing
> in practice. There is also the fact that the notebook inherits
> context from the entire Mathematica session, including all open
> notebooks, that leads to similar flavors of confusion.
The current document model has two separate sections: a log and a sheet.
The log contains all of the text from the In[NN] and Out[NN] prompts and
other information. Each element is tagged with the number NN. The sheet
contains the rich text that you write and references to those elements
in the log. The sheet can contain any, all, or none of the elements in
the log in any order and with any number of repetitions. When executed,
the notebook will only consider the elements in the log in order. The
formatting of the sheet is irrelevant to execution.
At the moment, we are focusing on creating an interactive environment,
not a code development environment. It is not expected that you will
write modules in this environment. For that we leave you to your own
editor and/or literate programming tools.
--
Robert Kern
rkern at ucsd.edu
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
More information about the IPython-dev
mailing list