[SciPy-user] ipython => TeXmacs!

Fernando Perez scipy-user@scipy.net
Tue, 4 Feb 2003 11:18:00 -0700 (MST)

On Thu, 30 Jan 2003, David Ascher wrote:

> Fernando Perez wrote:
> >However, as I said before, I don't intend to embark on a gui project myself.  
> >For my needs, ipython + xemacs is basically perfect.  However, if there is 
> >enough interest in a gui scientific pyhton shell,  I'd be glad to help along 
> >with the internal redesign and I can probably write the 'plumbing' necessary 
> >for ipython to plug into another external system.  But gui programming just 
> >doesn't interest me very much, sorry.
> >  
> >
> I'm interested, not so much in the scipy-ipython integration (although 
> that would be neat), but in finding a way of using ipython in Komodo, 
> when we get to do our interactive shells.  I'm not going to have time to 
> work on that for a while, but I'd love to learn more about ipython and 
> its architecture -- specifically what API you'd like to see between the 
> GUI handling part and the "model" of the shell.

Well, give IPython a try one day and see if it seems to fit your needs.  As 
far as architecture goes, let's say there isn't much of one (to be very kind 
to me :).  IPython is quite robust and useful, but internally a mess.  And 
that's precisely why I'm interested in hearing about possible development 
along with a good gui: so that I can drive a major internal cleanup with an 
eye out for gui integration.

Honestly, I think that for a text-only shell it's "good enough" and probably 
the effort of cleaning it up internally isn't really justified.  But if 
there's interest in using it as the core for a good gui, I could definitely 
reorganize it and actually come up with a good API.  The pieces are in my head  
and I know what needs to be done.

Here's how I see it being done: I could reorganize its internals by 
coordinating with gui folks so that the current ipython (text-mode) becomes 
one 'view' of the internal engine.  That would be the simplest view, as a text 
client running in a terminal.  The gui writers could then call the same engine 
from inside a graphical window for added functionality.  I would help with the 
internal rewrite and could maintain the text interface, but I won't go into 
the gui stuff. Sorry but I'm just not very interested in that and don't have 
the time for it.

Ideally it could be done so that PyCrust, Idle or Komodo could all (with 
suitable, hopefully minor adapations) call ipython for their shell services.  
If this is done right, it could eventually become part of the standard library 
and we could have a really solid underpinning for all the python shells.  This 
would bring the added benefit of more developers fixing bugs/adding features 
to a core which all shells (graphical or not) could benefit from.