[R-gui] Status of the R-GUI

James Wettenhall wettenhall at wehi.edu.au
Fri Sep 12 11:43:19 MEST 2003


Hi,

Maybe I'm starting to veer from the original question, but it's 
been a while since this list has seen a lot of general 
philosophical discussion of GUI development.

I think there are at least three types of users we should think 
about: 
(1) Users who have no desire to learn how to use a 
  Command Line Interface (CLI), but are still very intelligent.
(2) Users who want to use a GUI as a preliminary step before 
  learning how to use a CLI.
(3) Users (like myself) who are comfortable using a CLI, but 
  find that they can "protect" themselves against common errors
  and be more productive by using a GUI sometimes.

I know of several R-GUI projects with slightly different aims.  
Of course there's Peter Dalgaard's fantastic tcltk package, 
including the tkStarGUI prototype.  I'm using tcltk to develop a 
microarray analysis interface which will eventually be submitted 
to Bioconductor (http://bioinf.wehi.edu.au/limmaGUI/)
There are other Tcl/Tk projects including John Fox's Rcmdr 
package, which I think is partly designed for users of type (2), 
but should also appeal to advanced R developers as it is 
extensible.  

John Zhang has contributed the widgetTools and tkWidgets 
packages to Bioconductor, which allow a more object-oriented 
approach to Tcl/Tk GUI development, perhaps analagous to Java 
Swing.  Speaking of which, is anyone using Java Swing with R?  

There is also Phillipe Grosjean's SciViews project, which may 
not be entirely platform-independent, but a great proportion 
of users of type (1) hardly know that Linux exists, and may 
always use software developed in a similar way to Phillipe's, 
i.e. Microsoft Visual Basic or Microsoft Visual C++ 
or whatever.

There are other R-GUI projects.  Sorry for the omissions.

Peter Dalgaard described a "scripting widget" in :
http://cran.r-project.org/doc/Rnews/Rnews_2002-3.pdf
which makes it possible to build a GUI which appeals to all 
three types of users!!! An R/TclTk interface can have simple 
buttons and menus for users of type (1), but users of type (3) 
(and perhaps (2)) can learn how to enter R code directly to 
interact with the data objects used by the GUI.  
(See the bottom of the worked limmaGUI example at
http://bioinf.wehi.edu.au/limmaGUI/Doc/Weaver/index.html
where I have an "Evaluate R code" menu which can be used to grab 
some data objects use by the R/TclTk application and type an R 
command to plot them in a tkrplot window, or check their values 
in a text window.

I would certainly like to encourage R-GUI development, but my 
limmaGUI project (http://bioinf.wehi.edu.au/limmaGUI/) may be 
too specialized to interest general R-GUI developers.

So, I have been thinking, how could I contribute something which 
would encourage R-GUI development?

Here's an idea I came up with:

Develop a simple "spreadsheet" R package using the Tktable 
widget, which allows things like getSelection() to store 
selected cells in a data frame and allows developers to 
easily add menus to do things like barplots of the data in 
the selected cells (with a few pre-built examples).  Then, 
formulae within cells: =Rfunction() would be nice, and things 
like "fill-down" etc.  Of course for large spreadsheet files, 
it would be incredibly slow compared with Excel, so would it 
be any use?

The reason I suggest this, is that developers could instantly 
see how the interface could be made easy to learn for users of 
type (1) but hopefully they (developers) could also see how to
extend its functionality easily.

Just one last issue to mention: ease of installation.  
Currently, a typical user of my R/TclTk GUI will start with nothing - 
they will not have R, Tcl/Tk or any interesting R packages 
installed. (I should note that I used the tkTable and bwidget 
extensions which are not bundled with R.)  Is anyone out 
there working on installation wizards for their favorite operating 
system(s)?  I personally do not have installation privileges so 
it's difficult for me to test installation wizards, but I'd 
certainly like to make my software easy to install.

InnoSetup:
http://www.jrsoftware.org/isinfo.php
is free software to create Installation Wizards for Windows.

Perhaps another option is to build a Wizard using something like 
freewrap (creates binaries from Tcl/Tk scripts):
http://freewrap.sourceforge.net/
and you could possibly use TclCurl:
http://personal1.iddeo.es/andresgarci/tclcurl/english/
if the wizard had to download anything from the Web.

OK, enough rambling!

Feel free to disagree with my current R-GUI philosophies.

Regards,
James

--------------------------------------------------------------------------
James Wettenhall                                  Tel: (+61 3) 9345 2629
Division of Genetics and Bioinformatics           Fax: (+61 3) 9347 0852
The Walter & Eliza Hall Institute         E-mail: wettenhall at wehi.edu.au
 of Medical Research,                     Mobile: (+61 / 0 ) 438 527 921    
1G Royal Parade,
Parkville, Vic 3050, Australia
http://www.wehi.edu.au



More information about the R-SIG-GUI mailing list