Today, REvolution Computing announced a major new add-on to R that we have been developing over the past year or so. The R Productivity Environment, or RPE, is a brand new interface that is designed to make creating R programs easier and more reliable. It's available now to subscription customers of REvolution R Enterprise on Windows. Here's the list of features:
- Enhanced Script Editor with hover-over help, word completion, find-across-files capability, automatic syntax checking, bookmarks, and navigation buttons.
- R Code Snippets to automatically generate fill-in-the-blank sections of R code for a variety of analyses. Tooltip help gives guidance in filling out the snippet. R function authors can write their own code snippets to share with other users.
- Object Browser allowing users to see all the data and function objects that are available, including those in loaded and installed R packages. Context menus provide the capability to quickly edit and plot data or load a package.
- Full-featured Visual Debugger for debugging R scripts, with step-in, step-over, and step-out capability, allowing users to inspect and modify R objects as they are debugging.
- A Visual Solution Explorer for organizing, viewing, adding, removing, and rearranging, and deploying R scripts. Users can create their own Project Templates for automatic creation of a set of customized scripts for a new R project.
- Dockable, Floating, and Tabbed Tool Windows allowing for personally customized workspaces.
- Enhanced Help including complete search capabilities and hover-over tooltips for functions and data objects.
You can see these features in action in the webcast I gave last week (or download the slides for more details). I've been using the RPE in the beta program for a couple of months now, and for me the two most useful features are Snippets and the Debugger.
Snippets give you the best of both worlds of menu/dialog systems and programming: you use a menu to select a standard task (like importing a file or creating a chart), but instead of just performing the action, the RPE inserts R code to do it. You use the TAB key to skip between placeholder sections in the code, and pop-up help tells you what each placeholder does, so it's almost as easy as using a dialog. But if you're a new R user, you're learning how to program in R as you go, and if you're a more advanced programmer, you save time by replicating code which you can adapt as necessary. You can create your own snippets, too.
The debugger really streamlines the process of finding and fixing mistakes in R code. You no longer have to edit a function to insert a browser() call, or use the trace() or debug() functions. Instead, all you need to do to create a breakpoint in a script or a function is click once on the line where you want the breakpoint to go. You can set as many breakpoints as you want, and then switch the RPE to Debug mode. Now when your code runs, it will stop at each breakpoint where you can inspect or change variables with the command line or Object Browser. You can then step to the next line of code (even into another function), or continue to the next breakpoint. Once you've made your changes, just switch to Release mode and all the breakpoints are disabled. (No more worries about forgetting to remove your browser() calls before you check in your code!)
By the way, the debugger functionality relies on some new capabilities of the browser() family of functions in the R 2.10 release (and we backported to R 2.9.2, which the RPE is based on). (These slides from my talk at DSC have the details.) Thanks go to Robert Gentleman and Duncan Murdoch for their help in getting these capabilities into the R codebase. Thanks too to everyone on the beta-test program for providing feedback about the debugger and the other RPE features.
P.S. REvolution R Enterprise 3.0 will also be available on MacOS and Red Hat Enterprise Linux systems. Those platforms don't have the RPE, but do have all the other enhancements for parallel programming, validation, and of course support.