> The weakness of this approach is that sage is running the main > application loop. I.e. if f.derivative() takes its time, then there's > a spinning beachball. I assume the big M's overcome this by > separating their GUIs from their kernels.
Yes, they do. Sage can also do that, e.g., that's how the Sage notebook works. This can be done over pexpect without opening any network sockets -- the code we use for this in the notebook server is in devel/sage/sage/server/notebook/worksheet.py. The relevant code is stuff like sage: S = Sage() sage: S._send('...') sage: S._so_far() Basically Sage() makes an interface to a new copy of Sage. S._send(...) sends code to it to be evaluated, and this is nonblocking. S._so_far(...) checks how much output has been received so far. > > The big strength is much the same. Because sage is running the main > application loop, you don't have to think about message passing of any > sort. It should be easy enough to subclass NSView or something to > display plots. Etc. That is a big strength. There is a French guy -- Gaƫl Varoquaux -- who I had dinner with tonight and who co-organized Scipy 2008, who yesterday demoed a gui interface for IPython that he's writing. I've cc'd him on this email, in case he wants to make any remarks. His current GUI is also "one thread". William > > If anyone's interested in kicking around ideas or explaining why this > is a dumb idea, please go for it. If you want the boilerplate code > you are welcome, but it was mostly hard hacks to get things working, > and is utterly specific to my system. > > D > > > ================================== > David J Philp > Postdoctoral Fellow > National Centre for Epidemiology and Population Health > Building 62, cnr Mills Rd & Eggleston Rd > The Australian National University > Canberra ACT 0200 Australia > > T: +61 2 6125 8260 > F: +61 2 6125 0740 > M: 0423 535 397 > W: http://nceph.anu.edu.au/ > > CRICOS Provider #00120C > > > > > > -- William Stein Associate Professor of Mathematics University of Washington http://wstein.org --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---