[R-gui] R tcltk/tcltk2 vs. R GTk2

Philippe Grosjean phgrosjean at sciviews.org
Wed Aug 1 12:09:18 CEST 2007


Just my 0.02$ added to this discussion: tcl/tk could be automatically 
installed under Windows (if the option is checked), and tile is readily 
usable once the tcltk2 package is installed. Also, using tcltk2, you 
have more Windows look&feel than with Gtk2. There are also a couple of 
other advantages of tcltk on specific tasks, mainly thanks to nice 
aspects in the underlying tcl language readily available. So, under 
Windows, tcltk (+ tcltk2) solution is much more easily in operation on 
any users computer than a solution based on RGtk2.

For Linux, Gtk2 is certainly at home, although there is special tile 
version in development to support Qt widgets, I think.

For MacOS X neither provide the appropriate look&feel. There a special 
Tcl/Tk distro installed on all MacOS X (at least on Tiger), but the 
regular R distribution with the AQUA GUI cannot use it. It is possible 
to compile R to use it and then, you got an excellent tcltk + tcltk2 
solution with MacOS X look&feel that is almost perfect. However, this is 
something only for experienced users, while most GUIs target beginners.

For the rest, I pretty much agree that Gtk2 is much more powerful, but I 
am not sure we need all its power for 99% of the simple GUIs stuff 
required on top of R.

We should end the widgets war, and start looking at gWidgets by John 
Vezani, which intend to provide an interface to GUI widgets from R 
independent from a particular implementation. At the moment, there is 
only an implementation of gWidgets interface for RGtk2 (and one for 
Java?),... but an implementation for tcltk (/tcltk2) should not be too 
difficult to do. I may work on it once I have some time, that certainly 
not in the near future!!!

Anyway, I will continue to improve tcl/tk support through tcltk2 when 
time permit, and since I have now a Mac with MacOS X + Windows + Linux 
installed on it, I will work on more portable code than before (I was 
only working under Windows).

Really, the effort should be targetted to make R GUIs independent from a 
particular GUI widget and start coding or recoding stuff using gWidgets 
and work on both RGtk2 and tcltk/tcltk2 implementations. Currently, I 
should consider this, personnally:
- Linux: RGtk2 for sure,
- Windows: tcltk+tcltk2 for ease of installation and better Windows 
installation, or RGtk2 if you need more features than those provided by 
tcltk/tcltk2,
- MacOS X: nothing really satisfying currently.

Best,

Philippe
..............................................<°}))><........
  ) ) ) ) )
( ( ( ( (    Prof. Philippe Grosjean
  ) ) ) ) )
( ( ( ( (    Numerical Ecology of Aquatic Systems
  ) ) ) ) )   Mons-Hainaut University, Belgium
( ( ( ( (
..............................................................

Peter Dalgaard wrote:
> Michael Lawrence wrote:
>> GTK+ has many more features than tcl/tk (tile included), though tcl/tk does
>> have some features that GTK+ lacks, like a canvas widget.
>>
>> The API of the underlying toolkits, as well as the R interfaces, are quite
>> different. I've heard many people say that they prefer the GTK+/RGtk2 style,
>> though there are probably many people that feel the opposite. The tcltk
>> package is a binding to the Tcl language, while RGtk2 is a binding to a
>> collection of C libraries.
>>   
> Minor quibble: tcltk (mostly) binds directly to the Tcl *engine*, 
> bypassing the parsing layer, $-substitution, quoting hell, etc. The 
> Tcl/Tk engine is just another collection of C libraries. The major 
> difference to Gtk+ is that the Tcl/Tk engine was designed to support 
> interpreted languages (mainly, of course, Tcl).
> 
> Apart from that, I pretty much agree that RGtk2 could well be the 
> toolkit of the future. It's main detraction at this point is that it is, 
> at the tutorial level, mainly documented by demos and that it seems to 
> be a bit sensitive to changes in the underlying toolkit and have a 
> couple of rough edges in general. But it can certainly do amazing stuff; 
> all it needs is a dedicated effort to take care of a number of little 
> issues (esp. portability). That and an introductory document that covers 
> the concepts involved.
> 
> (It needs to be no secret that I have been approached about the 
> possibility of a book on R/tcltk, and ended up resolving that there 
> would certainly be a market, but of the 3 or 4 candidates to write it, 
> probably none would want to. However, in due course, when the obvious 
> author completes his academic obligations, a book on RGtk2 should be a 
> very interesting prospect.)
> 
>> RGtk2 also binds libglade, meaning that one can design a GUI graphically
>> using the Glade tool and display it using R. Glade may or may not be useful,
>> depending on the application. The Rattle tool seems to have used Glade
>> effectively, but I personally prefer to construct the interfaces
>> dynamically.
>>
>> Since GTK+ is object-oriented, RGtk2 is able to support the creation of new
>> widget classes that override the functionality of their parents. This is a
>> neat feature, but is rarely necessary.
>>
>> For graphics, RGtk2 binds several useful libraries, including Cairo (vector
>> graphics) and GdkPixbuf (image manipulation).
>>
>> You might also consider the gWidgets package. It is a convenient API for
>> creating simple GUIs in R. It abstracts away the underlying toolkit.
>> Implementations exist using RGtk2 and rJava (swing). You could always start
>> using a GUI this way and then convert to RGtk2 or some other toolkit later
>> if necessary.
>>
>> I hope this helps,
>> Michael
>>
>> On 7/28/07, morphwj at comcast.net <morphwj at comcast.net> wrote:
>>   
>>> Why use R tcltk/tcltk2 instead of R GTk2, or why use R GTk2 instead of R
>>> tcltk/tcltk2?
>>> Bill Morphet
>>>         [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-SIG-GUI mailing list
>>> R-SIG-GUI at stat.math.ethz.ch
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-gui
>>>
>>>     
>> 	[[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-SIG-GUI mailing list
>> R-SIG-GUI at stat.math.ethz.ch
>> https://stat.ethz.ch/mailman/listinfo/r-sig-gui
>>
> 
> _______________________________________________
> R-SIG-GUI mailing list
> R-SIG-GUI at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-gui
>



More information about the R-SIG-GUI mailing list