[R-gui] R GUI considerations (was: R, Wine, and multi-threadedness)

Jeffrey J. Hallman m1jjh00 at frb.gov
Thu Oct 20 00:43:46 CEST 2005

If you're looking for a GUI toolkit that:

   1.  Is cross-platform,
   2.  Has a good collection of widgets that look good on all platforms, and
   3.  Is easy to work with from R

then it is hopeless.  There is no such toolkit.

As one poster mentioned, most of the better GUI toolkits are very
object-oriented, because that paradigm is a good fit for GUI programming. 
There are a few programming environments out there that do have nice GUI
abilities, but they all use base languages that are not very R-like, and so
the potential R GUI programmer is faced with having to use two very different
languages for his creation.  And even if that obstacle is surmounted, there
remains the difficulty of trying to package up his work in such a way as to
make it easily installed by others.  Things are always breaking in the
interfaces between R and whatever you're using.  Trying to keep it all running
and packaging it for deployment are thankless, gargantuan tasks.

There is a better way, and that is to give up on R.  Start over with
a better programming environment, one that is object oriented, as flexible and
dynamic as R, is cross platform, easy to program in, and has decent GUI
facilities already.  Then port the stuff in R that does statistical
programming, and you have the best of all worlds. 

The environment I am thinking about is VisualWorks Smalltalk, which is free
for noncommercial use.  As a language, Smalltalk is both simpler and more 
powerful than R, and the VM it runs on is much faster than the R interpreter.
It has superior garbage collection and the best IDE in the business.
Callouts to C are just as easy as they are in R, but would likely not be
needed as often due to the faster VM and much better programming facilities.
Interfaces to various databases are possible, and the most powerful web
toolkit (Seaside) is written in Smalltalk and runs under VisualWorks.

There are a couple of other Smalltalk environments around that could also be
considered.  Squeak is an open source cross-platform Smalltalk that is not as
fast as VisualWorks, but still must faster and more robust than the R
interpreter.  Smalltalk/X is another possibility, though it works only on
Windows and Unix. 

Think about it.  Once you have a basic math package that can handle matrix
programming and various mathematical functions, building the various
statistical modeling tools on top of them is not that hard.  What makes S and
R so much better than SAS is their programmability.  Smalltalk is like that,
only better.

Jeff Hallman

More information about the R-SIG-GUI mailing list