From ggrothendieck at gmail.com  Sun Jan  1 16:14:10 2006
From: ggrothendieck at gmail.com (Gabor Grothendieck)
Date: Sun, 1 Jan 2006 10:14:10 -0500
Subject: [Rd] Wish list
In-Reply-To: <43B7E8DA.4090603@stats.uwo.ca>
References: <971536df0601010547m488319c9h62a74a8a1b4ad4ad@mail.gmail.com>
	<43B7E8DA.4090603@stats.uwo.ca>
Message-ID: <971536df0601010714x6d24ce75l95d0be1a33f28d6a@mail.gmail.com>

On 1/1/06, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> On 1/1/2006 8:47 AM, Gabor Grothendieck wrote:
> > This is my New Year wishlist for R features.  One
> > common thread is that I find I sometimes use languages
> > other than R including javascript, Windows batch and
> > gawk.  Others have mentioned other languages too.  It
> > would be nice if, in those cases I could use R
> > simplifying development into a single environment
> > (viz. R).
> >
> > The following are not in any order.
> >
> > 1. Self Contained Executables
> >
> > Make it possible to create self contained R
> > executables.  Something like tcl starkits
> >         http://www.equi4.com/starkit.html
> > or Python py2exe
> >         http://starship.python.net/crew/theller/py2exe
> > is what I am thinking of.  Its ok if they
> > are interpreted as long as its all transparent.
>
> How self-contained?  It would be relatively easy to create small

Similar to tcl starkits and pyexe.  You can just send someone
an .exe and they can run it.  They don't have to have any software
or files other than that.  Or suppose I want to write an R configuration
facility and don't know which version of R is on the machine or even
if R is on the machine.  Currently I use batch files or javascript to
do this (see http://cran.r-project.org/contrib/extra/batchfiles/) since
one does not want to have configure the configurer.  I would actually
prefer to leverage my knowledge of R and not have to go to the
lengths of using a different language.

> executables that could make use of the DLLs in R_HOME.  But that's
> probably not useful if better support for your next suggestion was
> there. If you want something that would run on a machine with no R
> installed, that probably involves changing the linking scheme (at least
> in Windows), and would not be so simple.
>
> > 2. R as a Filter
> >
> > Support using R as a filter analogously to
> > awk/gawk.  e.g.
> >
> >     echo a x 3 | R -f myprog.R | findstr /i answer
> >     echo a x 3 | R -e "chartr('x', 'X', readLines(STDIN()))" | findstr /i X
> >
> > This would allow replacement of certain awk/gawk
> > filters with R.  In the above STDIN or some
> > would refer to the echo output, not to further
> > input from the script.  I think /dev/stdin
> > can already be used in UNIX but not in Windows.
> >
> > 3. Microsoft Active Scripting Language
> >
> > Make R into a Microsoft Active Scripting
> > language.  Nearly every other major scripting
> > language including perl, python, ruby, tcl,
> > oorexx, vbscript, jscript and others have
> > Microsoft Active Scripting support.  This would
> > allow R to be used like javascript in HTML files
> > in Microsoft environments and also in any other
> > software that supports Microsoft's active
> > scripting interface.
>
> R is not designed to be secure.  I think this would be a very risky
> thing to do.

Some alternatives are:

- restrict execution to .hta's (which are html files that are restricted to
run locally -- they can't be run from a browser).

- do the work to separate out the OS dependent items into libraries
so that access can be restricted similarly to what vscript and jscript
have done with wsh.

- perhaps there is some way for the user to accept or reject such
applications as trusted or not?

> >
> > 8. Extend Grid to Base Graphics
> >
> > Rework base graphics so that they use grid
> > graphics underneath to the extent possible or else
> > leave them as is but have a version or package
> > that emulate them using grid graphics.
>
> This sounds like the gridBase package.

Correct me if I am mistaken here but
my understanding is that this makes it possible to use
grid and standard graphics together but does not produce
grobs for all the elements of a graphic like doing it from
the bottom up would.



[Rd] Wish list
Gabor Grothendieck