“Evaluating the Design of the R Language: Objects and Functions for Data Analysis”, Floreal Morandat, Brandon Hill, Leo Osvald, Jan Vitek2012-06-11 (, )⁠:

[Parsing CRAN to see what in the strange set of R features are actually used in the real world—not laziness or its weirdo context-dependent scoping, turns out.]

R is a dynamic language for statistical computing that combines lazy functional features and object-oriented programming. This rather unlikely linguistic cocktail would probably never have been prepared by computer scientists, yet the language has become surprisingly popular. With millions of lines of R code available in repositories, we have an opportunity to evaluate the fundamental choices underlying the R language design. Using a combination of static and dynamic program analysis we assess the success of different language features.

…Given the nature of R, many numerical functions are written in C or Fortran; one could thus expect execution time to be dominated by native libraries. The time spent in calls to foreign functions, on average 22%, shows that this is clearly not the case.

…As a language, R is like French; it has an elegant core, but every rule comes with a set of ad-hoc exceptions that directly contradict it.