I don't think the RStudio design principles are written down anywhere in particular, but I'll do my best to describe how we design IDE features. Our primary goals in developing the RStudio IDE are to:
- Help encourage best practices when using R for data analysis,
- Make R more easily accessible to new users,
- Make it easier to write and debug R code.
We try to nudge users towards best practices where possible. For example, we strongly believe that analyses and reports should be reproducible. Clicking buttons in the IDE is not a reproducible action; however, the code generated by those actions can be used in reproducible reports. For that reason, we avoid designing features that can mutate state in the IDE, unless we can provide you the same R code that executes that action.
In doing this, I think we also help empower the user by teaching them how to use R to accomplish the same task that they've just executed within the IDE, and those same skills compound to help the user become a better data analyst.
Another way of putting it -- we try to teach you how to use R without the RStudio IDE, but attempt to make the R experience within pleasant enough that you stay anyhow.
We believe this approach is genuinely helpful as you begin to automate data analyses, report generation, and so on -- you can build and debug your analyses in the IDE, but everything you build and implement is still yours, and can later be used outside of the IDE when required.
Ultimately, we want the RStudio IDE to help users become better, more productive data analysts, and so most of the features are designed to encourage that wherever possible.