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. 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. 4. Extend Clipboard Support to Non-Text Objects on Windows If one selects and copies a table in Internet Explorer (IE) one can then paste it into Excel and it comes out as expected with one Excel cell per IE table cell. However, R does not currently support this level of integration. (Current workaround is to paste it into Excel and then copy it back out of Excel. Excel will add tabs to the text that is so copied.) I understand that this feature may be in R 2.3.0 but am mentioning it for completeness. 5. Handhelds Version(s) of R for handheld computers such as Palm, Windows Mobile, Symbian, Blackberry, etc. UNIX-based handhelds would likely be simplest but the others would likely be useful to a wider audience. 6. Issue Tracking in Packages Standard method of tracking issues in CRAN packages. Provide svn and Trac support or equivalent to CRAN package authors or at least have a common change log mechanism. There is currently no uniform way of finding out what has changed in a package. 7. system The arguments of "system(...)" should be extended in various operating systems so that a consistent set is available across them. Right now it works differently under Windows and UNIX. 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. 9. Eliminate Perl Get rid of all use of perl within R. The parts of R that use perl have not changed much probably because its too onerous to have to deal with a complex multilanguage setup. Eliminating perl might speed up improvements in those areas. This mostly affects the package buildin gprocess which could then be rehosted within R as a package building package. 10. Event Loop Add an event loop mechanism to facilitate GUI programming in R and also to facilitate the development of facilities to allow higher levels of interaction within grid graphics.
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 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.> > 4. Extend Clipboard Support to Non-Text Objects on > Windows > > If one selects and copies a table in Internet > Explorer (IE) one can then paste it into Excel and > it comes out as expected with one Excel cell per > IE table cell. However, R does not currently > support this level of integration. (Current > workaround is to paste it into Excel and then copy > it back out of Excel. Excel will add tabs to the > text that is so copied.) > > I understand that this feature may be in R 2.3.0 > but am mentioning it for completeness.Yes, I wrote some functions to do some of this, but I haven't committed them to the trunk. I didn't like the user interface much: using clipboard support depends heavily on being able to handle the various clipboard format constants (CF_BITMAP, etc.), and R doesn't handle constants well. I'll take another look at them and see if I get any inspiration on how to make them palatable.> 5. Handhelds > > Version(s) of R for handheld computers such as > Palm, Windows Mobile, Symbian, Blackberry, etc. > UNIX-based handhelds would likely be simplest > but the others would likely be useful to a wider > audience.All this needs is someone who wants to gather/create the tools and start building the binaries.> 6. Issue Tracking in Packages > > Standard method of tracking issues in CRAN > packages. Provide svn and Trac support or > equivalent to CRAN package authors or at least > have a common change log mechanism. There is > currently no uniform way of finding out what has > changed in a package. > > 7. system > > The arguments of "system(...)" should be extended > in various operating systems so that a consistent > set is available across them. Right now it works > differently under Windows and UNIX. > > 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.> 9. Eliminate Perl > > Get rid of all use of perl within R. The parts > of R that use perl have not changed much probably > because its too onerous to have to deal with a > complex multilanguage setup. Eliminating perl might > speed up improvements in those areas. This mostly > affects the package buildin gprocess which could > then be rehosted within R as a package building > package.> 10. Event Loop > > Add an event loop mechanism to facilitate GUI > programming in R and also to facilitate the development > of facilities to allow higher levels of interaction > within grid graphics.There is such a thing now: see the Writing R Extensions manual. It still needs work, but people using it and suggesting improvements will help. Duncan Murdoch
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 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. >We have been thinking of this, for me in the context of putting R on small sensor network nodes.> 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. >This has been in the works for a long time and I still dislike two small pieces of the solution that make it limited.> 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.Yes not that hard to do given the work in other interfaces, but I wish the Windows users would contribute it.> > 4. Extend Clipboard Support to Non-Text Objects on > Windows > > If one selects and copies a table in Internet > Explorer (IE) one can then paste it into Excel and > it comes out as expected with one Excel cell per > IE table cell. However, R does not currently > support this level of integration. (Current > workaround is to paste it into Excel and then copy > it back out of Excel. Excel will add tabs to the > text that is so copied.) > > I understand that this feature may be in R 2.3.0 > but am mentioning it for completeness. > > 5. Handhelds > > Version(s) of R for handheld computers such as > Palm, Windows Mobile, Symbian, Blackberry, etc. > UNIX-based handhelds would likely be simplest > but the others would likely be useful to a wider > audience. > > 6. Issue Tracking in Packages > > Standard method of tracking issues in CRAN > packages. Provide svn and Trac support or > equivalent to CRAN package authors or at least > have a common change log mechanism. There is > currently no uniform way of finding out what has > changed in a package. > > 7. system > > The arguments of "system(...)" should be extended > in various operating systems so that a consistent > set is available across them. Right now it works > differently under Windows and UNIX. > > 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. > > 9. Eliminate Perl > > Get rid of all use of perl within R. The parts > of R that use perl have not changed much probably > because its too onerous to have to deal with a > complex multilanguage setup. Eliminating perl might > speed up improvements in those areas. This mostly > affects the package buildin gprocess which could > then be rehosted within R as a package building > package.There is some work in progress on an extensible, R-based package mechanism.> > 10. Event Loop > > Add an event loop mechanism to facilitate GUI > programming in R and also to facilitate the development > of facilities to allow higher levels of interaction > within grid graphics. >Well, there has been work on this that people couldn't agree on. And while we are on the topic of wishlists... Generally (i.e. not directed specifically to Gabor), the suggestions are very welcome, but so are contributions. And for issues such as making the existing R available on handhelds, that is a programming task. And I draw a large distinction between programming and creative research which is based on new concepts and paradigms. The pool of people working in statistical computing research is very small. And to a large extent, their time is consumed with programming - making the same thing work on multiple platforms, correcting documentation, etc. which are good things, but not obviously the best use of available research ability and time. There are many more topics that are in progress that represent changes to what we can do rather than just to how we do the same thing. One of the reasons S (R and S-Plus) is where it is now is because in Bell Labs, the idea was to be thinking 5 years ahead and both meeting and directing the needs for the future. Because of R's popularity (somewhat related to it being free), there is an aspect of development that focuses more on software for statisticians to use "right now". Obviously, th development is a mixture of both the current and the future, but there is less of the future and certainly less of the longer term directions that is sacrificed by the need to maintain an existing system and be backward-compatible. If statistics is to fulfill its potential in this modern IT, we need new ideas and research into those new ideas. If we focus on basic programming tasks (however complex) and demand usability above concepts, we risk losing those whose primary focus is in statistical computing research from the field. While R provides statisticians and stat. comp. researchers with a terrific vehicle for doing their respective work, it also acts as a constraint for doing anything even moderately new. But much (not all) of R is based on innovations from the 1970's, 80's and 90's. And as IT evolves at a terrific pace, to keep up with it, we need to be forward looking. I'll leave it there - for the moment - and go fight off the ants that are invading my desk! While I wrote this down relatively rapidly, the ideas have been brewing for a long time. If anyone wishes to comment on the theme, I hope they will take a few minutes to think about the broad set of issues and tradeoffs. D.> ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel- -- Duncan Temple Lang duncan at wald.ucdavis.edu Department of Statistics work: (530) 752-4782 4210 Mathematical Sciences Building fax: (530) 752-7099 One Shields Ave. University of California at Davis Davis, CA 95616, USA -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (Darwin) iD8DBQFDt/by9p/Jzwa2QP4RAr6UAJ4mT9C1JcGwlFFJRFVDteyetDrAjACfax7B 0MpswqQE442j23WzJjqUADA=Aq8t -----END PGP SIGNATURE-----