[R-gui] [Rd] R GUI considerations
Thomas Friedrichsmeier
thomas.friedrichsmeier at ruhr-uni-bochum.de
Thu Oct 20 14:19:23 CEST 2005
Ok, I said I didn't want to embark in this discussion, but now I can't
resist...
> 1) New versions of R are released twice a year, with a yearly major
> update susceptible to bring uncompatibles changes somewhere. Since those
> changes are done by people probably not using your GUI, they
> unvoluntaring introduce uncompatibilities with your GUI. I experience
> this with SciViews-R, and I must say it happens too often to be
> overlooked. Now, if a big part of your code is in a R package, using
> good test units, (a) you are warn immediatelly of uncompatibilities, and
> (b) everybody can make the changes if you don't have time to do it right
> now. If it is in a foreign language, you have to use your own test
> units, and there is less chance that some R user can make the correction
> himself, because not all R users know your foreign language. The result
> is: a (sometimes) long delay between R versions and compatibles GUIs
> versions.
a) Unit tests are doable easily (though I admit, I don't have them so far).
b) In relying as little on R for GUI-stuff, as possible, I already rule out
one entire class of incompatibilities.
c) Only the _GUI_ is done outside of R. The GUI (at least most parts of it)
basically just creates R code (using a templating language to retrieve GUI
settings). This R code is then evaluated just like it would normally be on
the command line. No black magic involved.
d) No C internals involved either. As mentioned in c), the GUI creates plain R
code as strings. The actual interface to R is - well, relatively - simple.
And plugin writers do not even need to know anything about it.
> 2) The second reason is precisely the initial subject of the thread: we
> need to collaborate. How would you share code written in Java, versus
> C++ versus Python versus Delphi, ....?
a) I'm perfectly willing to share my plugin-framework (which will see major
improvements in flexibility and reusability in the next few months), and to
collaborate on making it better, adapted to other GUIs needs. The plugin
approach itself is designed to be platform/language independent. Of course
I'm aware, nobody else on this list is really interested in this, currently.
b) I do not think GUI code is the one and only point where R GUI projects can
collaborate in a meaningful way. In previous mails, I've pointed out two
major other areas. My "don't do it in R" philosophy only concerns the GUI
stuff (I've been more radical, before). Also, I'd like to once again advocate
that collaboration-efforts should be organized into strictly separate
"modules", as much as possible. Some projects will use a common approach on
all the modules, some will only collaborate on one or two areas, but follow
different approaches on other aspects.
Keep it small, keep it simple. If there's any hope to ever get past
discussions on which GUI toolkit is best, etc., I think this is probably a
rule to follow.
Regards
Thomas Friedrichsmeier
More information about the R-SIG-GUI
mailing list