[SciPy-user] Thoughts on GUI development

Peter Wang pwang at enthought.com
Thu Aug 28 18:36:46 EDT 2008


On Aug 22, 2008, at 5:43 PM, Gael Varoquaux wrote:

> On Fri, Aug 22, 2008 at 04:12:24PM -0400, Barry Wark wrote:
>> I think what Stef is getting at is that effective scientific software
>> may need to match its user model to the user's world model. In other
>> words, the "workflow" matters. If the software requires the user
>> (scientist/engineer/etc.) to deal with data or process in a different
>> order than the order implied by their experiment, the software is not
>> as good as it could be. In my view, this is why we build UIs--so that
>> we can match the software model to the user's model such that the
>> software is "invisible" to the user in doing their work. I contend
>> that it is a rare case when a CLI interface is the *best* fit to the
>> user's world model.
>
> I agree, but I was talking about a CLI interface, not a notebook, or
> something else, and I guess my point was that if you go in GUIs, you
> should should get more than a nice-looking terminal, eg Matlab,  
> scilab.

This point cannot be stressed enough.  For scientific or engineering  
users, one of the major workflows *is* data exploration.  Although  
writing expressions and small procedural logic blocks is a fairly  
reasonable fit for some of that exploration, I think people stick to  
it out of habit.  Some scientists like to make fun of "business" users  
that do crazy, complex things in Excel, but we should make sure that  
the python/ipython/matlab/mathematica/ prompt does not become our  
little Excel. :)

In my mind, the purpose of integrating a command-line prompt with the  
GUI is to provide that familiar exploratory interface while at the  
same time providing nice visual interfaces for things that actually  
*do* have workflow to them.  Furthermore, if the data and object  
models behind the exploratory interface are easy to turn into a more  
workflow-oriented interface for non-expert users, then the entire lab  
benefits from this sharing of expertise.  It's a lofty and a difficult  
goal, but I think it's the right way to interface GUIs with something  
as creative and open-ended as scientific analysis.

> I am currently struggling with trying to define what is my model,  
> what is
> my view, what should sit where, ie how many processes we want. I am  
> now
> convinced that for a robust and powerful IDE with Python, we want  
> several
> processes communicating together. For instance, I think that the  
> editor,
> may it be written in Python, and not emacs or vim, or eclipse,  
> should be
> sitting in a different process, so that the calculation does not block
> the editor, nor crashes it.

It's not clear to me why you want "several processes communicating  
together".  Ease of coding (i.e. avoiding nasty multithreading  
issues)?  The GIL?  It's not obvious to me why the choice of Python  
over, say, C++ changes the decision making process here.  If I were  
tasked with writing a C++ IDE, my first inclination would be to avoid  
multi-process as much as possible...


-Peter



More information about the SciPy-User mailing list