First off, I would like to thank the entire RStudio team: you guys are making R better, popular, available, friendly to use, and you are building a wonderful community. Thank you also to everyone involved in the
tidyverse. Huge huge fan here. R is really taking a new and great direction thanks to those packages and all of Hadley's amazing books.
Now, there is something that has bugged me a little about RStudio, and I thought that the best thing would be to open up a conversation with the RStudio team on the subject.
I commonly hear (e.g. workshops within my university) or read (e.g. blogs-including RStudio blogs) that RStudio has this or that cool feature while the package and code running under the hood when that feature is used are not made clear.
One example (but I have many others) would be this post: https://support.rstudio.com/hc/en-us/articles/205753617-Code-Diagnostics. The package
lintr is not mentioned once.
This has, in my opinion, several issues:
1/ There is an acknowledgement issue. Often, those packages that are run under the hood are created by the very RStudio people and I guess, in those cases, that may not matter. But if anyone outside of the RStudio team created or contributed to these packages, it might.
2/ It is deceiving in making people think that these features were created by RStudio and that RStudio is necessary to use them. This seems to me to be a serious transparency issue. I use R in emacs ESS and after reading the above post (to stay within that example), I truly believed that code diagnostics was a really cool feature that only RStudio users had access to. Until I realized, but quite a while later and totally by chance, that RStudio simply runs
lintr under the hood and that
lintr runs beautifully in ESS. I now use it all the time and love it (it has helped me get better formatting practices )
3/ One of the benefits of writing code rather than using a GUI system is to understand what is happening. To get out of the black box system. RStudio is a phenomenal IDE for sure. If I were not an emacs user, I would absolutely use RStudio. But at times, the boundary between IDE and GUI gets passed and I find that unfortunate for the users. I am surrounded by grad students that are very advanced R users, but who have no idea, for instance, that clicking on "knit this file" (or whatever the button says) runs
rmarkdown::render() and can totally be achieved outside of RStudio. That RStudio has a beautiful and very convenient integration of the function, but that the function belongs to a package that is independent from RStudio and runs in the console or R GUI, etc. Of course, if they paid attention, they would see the line of code appear on the console while clicking the button. But they don't and some of the feature they use commonly come out of a magic black box for them.
I hope my message does not come across as aggressive as I really do not mean it that way!!! RSstudio is amazing. And it makes R friendly. It is amazing out of the box and any person new to R has access to a system that takes months to set in place in ESS. It plays a phenomenal service within the R community. But I would love to see more transparency about what is being run in some of the cool features that are being implemented, more education to users about what code is being called so that the IDE remains an IDE and does not turn into a black box. And maybe keeping in mind that there are other good alternatives (if not as friendly to use) and that there is an R life outside of RStudio. Even for people who are utter fans of the
tidyverse, the RStudio team, and Hadley's work. Ideally, I would love to see some merging and collaborations between those parallel systems: RStudio and emacs ESS; rmarkdown and org mode... Because they are both amazing and do more or less the same things.
Thank you sincerely for reading my lengthy message and for all of your amazing work for the development of R and the R community. If I have been unfair or wrong, please let me know! There may be things I ignore or did not see/read/notice and that would make me change my views.