[Rd] RE: [R] GUI support from R

Luke Tierney luke@nokomis.stat.umn.edu
Mon, 3 Sep 2001 10:14:00 -0500

On Sun, Sep 02, 2001 at 02:01:20PM -0700, A.J. Rossini wrote:
> >>>>> "BE" == Byron Ellis <bellis@hsph.harvard.edu> writes:
>     BE> All I'm saying is that before people go haring off on a bunch
>     BE> of bindings for various graphics APIs (be it GTK, wxWindows,
>     BE> Tk, Win32, OpenGL GUI or *whatever*) that it might be
>     BE> advantageous to sit down at perhaps plan out a common set of
>     BE> features that all work in a way that makes sense for *R* not
>     BE> for Java or C++ or Tcl (AWT,Gtk+,Tk) and then go from there.
> I'll argue the opposite, actually.  Best to have a bunch of prototypes
> around and determine use-cases before deciding a particular something
> is "the REAL deal".
> Until you have a bunch of prototype applications sitting on the
> prototype bindings, it'll be difficult to get it right.
> (and yes, I've played with two, so far, Swing bindings via RSJava and
> the tcltk ones...).
> I suspect that the favorite of anyone will be "whatever they are used
> to".  
> best,
> -tony

I think tony is right.  Ideally, we want eventually to have a
hight-level, toolkit and OS independent interface, if that is
possible.  It may turn out that some things are too difficult to make
work cleanly across systems without going to a common denominator that
is too low; in those cases we would like a clean way of describing the
differences.  Unfortunately it isn;t possible to build such things in
the abstract--you need some prototypes to gain experience.

Also, one thing I have learned in may years of experience with this
sort of thing in xlispstat is that for a language like R any good GUI
system requires a proper mechanism for managing concurrency, in other
words: concurrent thread support (this is one thing Java definitely
got right).  Without that you end up either reinventing a significant
fraction of a threading system or with nasty race conditions, or both.
Threading for R is being worked on, but it is going to be a while
until it is ready to go.  It makes sense to experiment with a variety
of GUI designs in the interim and then look at tying things together
when all the pieces are in place.

One area where we can help is by separating the drawing and the event
management in the R graphics devices so that it is possible for R to
use its own drawing code for putting ink on paper but let a toolkit
take over the event management (in the long run I think this may be
more viable cross platform than trying to fight the multiple event
loops battle).  This sort of thing is useful in other contexts as
well, in particular in embedding, and it is being worked on.


Luke Tierney
University of Minnesota                      Phone:           612-625-7843
School of Statistics                         Fax:             612-624-8868
313 Ford Hall, 224 Church St. S.E.           email:      luke@stat.umn.edu
Minneapolis, MN 55455 USA                    WWW:  http://www.stat.umn.edu

r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch