[R-gui] Re: R-SIG-GUI digest, Vol 1 #3 - 9 msgs

Duncan Murdoch dmurdoch@pair.com
Thu, 17 Oct 2002 22:10:00 -0400


On Thu, 17 Oct 2002 21:32:32 -0400, you wrote:

>I think it is hard to get it configured on other people's machines.
>But I don't think it is technically too hard to get it to work as a
>regular server. What are the problems you have encountered.  (I agree
>things could be better and have some plans to make it easier and more
>platform independent, but they do involve significant reorganization
>of code.)

The biggest problem is that R thinks that it's in charge. There
shouldn't be an event loop in R, or a console, or any other
user-interface element.  R should provide the back end services that
let a front end user interface function, but it should make the least
possible assumptions about what that interface looks like.

I'd like to have an R object (and my program might instantiate a dozen
of them), which would provide services like parsing strings to turn
them into expressions, evaluating expressions, converting expressions
into printable strings,  telling me details about what's in the symbol
table (and details about any object in the symbol table), etc.

This object should be set up so that I can give it a long calculation
and it'll go away and do it, but with a way for me to say I changed my
mind and want to do something else instead.

It needs to be able to say it wants to output a string, but let me
decide what to do with it.

It needs to be able to say it wants to draw some graphics, and give me
a way to say where it should do that.  (This means that I'll need to
provide all the services needed to be a graphics driver.)

I'd like it to be able to report errors, and what its state was like
when they occurred.

>Can you point me to GUIs that are developed as clients to a server
>running in a different process. 

I don't know about Zed, but I wasn't thinking of it being in a
different process.  It might be implemented that way, but I want it to
look as though it's in the same process.  

Duncan