On 1/29/2012 4:35 PM, Paul Johnson wrote:
On Sun, Jan 29, 2012 at 6:10 AM, Prof Brian Ripley
<rip...@stats.ox.ac.uk>  wrote:
On 28/01/2012 22:04, John Fox wrote:
Dear Paul and Gabor,

The Rcmdr GUI uses the tcltk package, so I have some experience with
providing an R tcltk-based GUI for various platforms.

As Gabor says, everything works very smoothly on Windows because the R
Windows binary includes Tcl/Tk.

Maybe, but getting it there was very far from smooth.  Tcl/Tk compiled under
the compilers we used, but the resulting DLLs crashed R.  No one has ever
found the cause and I used the system SDK (essentiallly a version of VC++)
to build them.  And that puts us in a bind since the current system SDKs
generate code depending on DLLs that are not part of the minimal OS versions
we support (e.g. Windows XP and Server 2003, and the machine used to build
was retired 2 years ago).

Thanks, this is clearing things up. I believe these comments mean
that, at the current time, tcl/tk is as close as there is to an
officially endorsed graphical toolkit.  As I search more, I find many
other community contributors (besides Prof. Fox) using tcl/tk
(Sciviews).  So I should learn how to work with that.  Prof Ripley's
comment makes me think the endorsement is not entirely enthusiastic,
though.
There's this famous quotation from Winston Churchill: "it has been said that democracy is the worst form of government except all those other forms that have been tried."

Using Tcl/Tk in R is similar. It's there, and the R Core team (mostly) makes sure it works cross-platform, so it is the obvious choice for GUI development in R. But it is far from perfect. For one thing, the documentation in R is quite limited. The manual pages list all of the functions in the tcltk package, but they basically take "..." as their arguments. As a result, you sometimes have to guess how to get the inputs formatted correctly to pass them back-and-forth between the R process and the Tcl/Tk process (which have very different syntax). For another thing, communication between the two processes (at least on Windows) sometimes breaks down in non-reproducible and hard-to-debug ways. We built a tcltk GUI that uses a tabbed notebook interface, which is supposed to display five tabs. Most of the time, it does. But it can end up displaying anything from 1 to 5 tabs. It always displays them in order, so it apparently runs into a problem at some random point and stops. Closing the GUi and restarting it usually fixes the problem. Since we cannot trigger it reproducibly, we have never found the underlying source of the problem.

This message is not meant to dissuade you from using Tcl/Tk. It's just a warning to expect some bumps along the way....

Good luck,
    Kevin

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to