From phgrosjean at sciviews.org  Sat Oct 15 16:16:08 2005
From: phgrosjean at sciviews.org (Philippe Grosjean)
Date: Sat, 15 Oct 2005 16:16:08 +0200
Subject: [Rd] [R-gui]  R GUI considerations
In-Reply-To: <971536df0510150649k22bdf047uf2ac6106bea1120b@mail.gmail.com>
References: <4350FB09.3020503@sciviews.org>
	<971536df0510150649k22bdf047uf2ac6106bea1120b@mail.gmail.com>
Message-ID: <43510F28.6020209@sciviews.org>

Gabor Grothendieck wrote:
> The preferred solutions in the post all seem to involve another language:
> 
> - tcl to use tk
> - Python to use wxWidgets
> 
> and other solutions mentioned also seem to involve other languages:
> 
> - Visual Basic
> - Java (Swing?)
> 
> Is there some key missing feature in R with regards to GUIs
> that requires interposing another language?

Yes, there is: R is designed for CLI, and this implies a different 
approach as for a GUI (sequential execution of commands versus 
event-driven application). A language more suitable for event-driven way 
of programming is thus often interposed between R and the GUI itself. 
Have you notice that none of "external" GUIs for R do all the job in R 
itself. Perhaps, the closest one from a 100% R coded GUI is R Commander, 
but it takes benefit from the specific event loop of tcltk (otherwise, 
the whole GUI would be completelly frozen during all R computations), 
and partly of Tcl (even if it is indirect). JGR is Java, SciViews-R is 
Visual Basic, Tinn-R is Delphi, RKward is C++, etc... Of course, it is 
possible to implement extensions in C directly within R (that is what 
RGui does), another altenative, not favoured by "external" GUI 
developpers, it seems.
best,

PhG

> On 10/15/05, Philippe Grosjean <phgrosjean at sciviews.org> wrote:
> 
>>Hello,
>>
>>Following a discussion initiated on r-devel, that mentions SciViews-R
>>and other GUIs issues for R, I would like to make comments (and would be
>>happy if these comments would initiate interesting initiatives).
>>
>>A big, big problem with SciViews-R is that a part of it is written in
>>Visual Basic 6, a M$$$$ language, not supported any more, buggy, non
>>transposable to other platforms, etc, etc. Last year, I started to
>>rewrite SciViews-R, using much more native R code, which will ultimately
>>give what I call a "R GUI API", currently partly implemented in the
>>SciViews bundle available on CRAN. That "R GUI API" is a lot of work:
>>thousands of lines of code for the full API, and as I said, only a part
>>of it is currently implemented. That API is developed with reusability
>>in mind: platform-independent, better basis to rewrite SciViews-R in a
>>different language, and freely available for use by other GUIs. However,
>>nobody seems to be interested by this API (may be because it is not
>>documented enough?). Even simple functions like progress() in the svMisc
>>package are ignored, although they could be useful to some people. Well,
>>I regret this situation, but I don't care much more than that: after
>>all, the main goal is to make it the basis of the future
>>platform-independent implementation of SciViews-R.
>>
>>Now, regarding the rewritting of SciViews-R itself in a
>>platform-independent environment (i.e., language + graphical widget),
>>this is not undertaken currently for the reason I am not satisfied
>>enough with all curerently existing solutions for various reasons. I
>>give just a few explanations here:
>>
>>1) R + Tcl + Tk. The tcltk R package is widely available and largely
>>debugged. However, there are still problems to make a 100% Tcl console
>>for R (look at Peter Dalgaard's attempt in the package, not complete,
>>not 100% operational, currently). Another problem: the Tk widgets are a
>>little bit old-fashion, and I miss a lot of features provided by more
>>advanded graphical widgets like wxWidgets, for instance. However, it
>>seems to be the best bet, currently. So, I explore various kinds of
>>additions that could make Tcl + Tk a better and more modern GUI
>>implementation. Look at http://www.sciviews.org/SciViews-R... the
>>"tcltk2" package. In that package, I add "Tile", a series of themable
>>and more modern widgets, the famous "tkTable", a tooltip widget, a text
>>widget with synthax colouring, a tree widget, etc. + some Windows
>>specific stuff that help regarding problems like focusing on a Tk
>>window, and communicating with other apps. However, I face the problem
>>of installing all these additional widgets seemlessly under all
>>paltforms supported by R. For the pure Tcl widgets, no problems. But for
>>widgets with compiled code, like Tile or tkTable, this is much more
>>difficult... And since I mainly work on Windows...
>>
>>2) wxWidgets. This is a really great, very capable and
>>platform-independent solution. I like very much James Wettenhal attemps
>>of using wxPython (wxWidgets + Python) through RSPython and the
>>experimental wxPython R package. However, it is still alpha, there are
>>problems to finalize it, and his author is not continuing its
>>development for reasons that are personal to him. So, I am not sure we
>>will have a usable version available soon to integrate wxWidgets with R
>>and use it for a R GUI.
>>
>>3) JAVA. There is a good R GUI written in JAVA: JGR. Moreover, something
>>like the Eclipse platform is a very promizing environment for a
>>rich-featured R IDE. JAVA specialists in my University say such a GUI,
>>written in JAVA will be relatively slow compared to other solutions.
>>However, JGR is a good actual counter-example.
>>
>>4) GTK2. Great widgets... but forgets Windows. I installed and used Gimp
>>under Windows. This is certainly the best demonstration on what can be
>>done with GTK2 under Windows. I must admit I am very disappointed as a
>>Windows user: look&feel is very different, and irritating in several
>>aspects.
>>
>>So, a long mail to conclude that, if I still haven't started to
>>implement the platform-independent version of SciViews-R, it is because
>>I am not convinced that any of the currently available R + rich-featured
>>and platform-independent widgets solutions available is the one that
>>will make it possible to reimplement SciViews-R in a streamless and
>>relatively bug-free manner. To summarize, the currently best candidate
>>is R + tcltk + tcltk2. I am convinced that R + Python + wxWidgets is by
>>far a much better solution, but it is still in alpha development.
>>Eclipse + JGR looks promising, and GTK2 is there too, but not enough
>>integrated under Windows for me to start using such a solution, as a
>>Windows user.
>>
>>I don't have much time to dedicate to SciViews-R and to the Sciviews R
>>GUI API for the moment, and I will certainly focus on four hot topics:
>>(1) developing the actual SciViews-R as a better teaching aid (I use and
>>need it for my own courses!), (2) contributing to the development of
>>Tinn-R, (3) further integrating R Commander with SciViews-R, and (4)
>>integrating Rpad with SciViews-R. However, I will have various contracts
>>in 2006-2007 where the development of SciViews-R is a part of the job.
>>So, I will have the opportunity to hire one or two developers, and this
>>will hopefully speed up SciViews-R development in a directly that will
>>satisfy more users.
>>
>>Otherwise, I am open to any suggestion, and more importantly, to any
>>idea of collaboration with other R GUI developers, as it is currently
>>the case with John Fox (R Commander integration with SciViews-R),
>>Jose-Claudio Faria (Tinn-R developement and Tinn-R compatibility with
>>SciViews-R), and Tom Short (Rpad developments and compatibility with
>>SciViews-R). I think it is important to insist on this, in a world
>>populated with a myriad of slowly developed, half finished, half
>>featured R GUIs, made by people that look too individualist in my view
>>to be able of working all together and to write a single R GUI that has
>>any chance to be full-featured, well-documented, reasonnably bug-free,
>>truly platform-independent, in a near future.
>>
>>Best,
>>
>>Philippe Grosjean
>>
>>..............................................<?}))><........
>> ) ) ) ) )
>>( ( ( ( (    Prof. Philippe Grosjean
>> ) ) ) ) )
>>( ( ( ( (    Numerical Ecology of Aquatic Systems
>> ) ) ) ) )   Mons-Hainaut University, Pentagone (3D08)
>>( ( ( ( (    Academie Universitaire Wallonie-Bruxelles
>> ) ) ) ) )   8, av du Champ de Mars, 7000 Mons, Belgium
>>( ( ( ( (
>> ) ) ) ) )   phone: + 32.65.37.34.97, fax: + 32.65.37.30.54
>>( ( ( ( (    email: Philippe.Grosjean at umh.ac.be
>> ) ) ) ) )
>>( ( ( ( (    web:   http://www.umh.ac.be/~econum
>> ) ) ) ) )          http://www.sciviews.org
>>( ( ( ( (
>>..............................................................
>>
>>______________________________________________
>>R-devel at r-project.org mailing list
>>https://stat.ethz.ch/mailman/listinfo/r-devel
>>
> 
> 
> _______________________________________________
> R-SIG-GUI mailing list
> R-SIG-GUI at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-gui
> 
>



[Rd] [R-gui] R GUI considerations
Philippe Grosjean