Comment by boccaff

Comment by boccaff 2 days ago

7 replies

When I've dealt with R in production, cursed meant: - Difficult to keep package versioning, even with "renv". - If an analyst decide to use a single function from the "tidyverse", you have a tons of dependencies. - Large docker images (1G+) due to packages like "devtools" and very large dependency tree for the "productivity packages" (see above). - Hard to communicate with the process. With luck, you can set it up and work with 'r-script' [1]. Without luck, stdout from process or simple files for io.

In the end, to have a nice webapp, we ended up rewriting the R code into typescript. Julia don´t solve this also, as you have a hard time to set it up to communicate with other things. It seems that we can´t avoid the "2 or 3 languages" problem if you don´t use python.

[1] https://www.npmjs.com/package/r-script

RA_Fisher 2 days ago

Single functions and libraries can easily be imported in R, just like Python. It’s not necessary though, because the R community does a good job avoiding name conflicts (MASS aside).

I think the core issue is that the coordination benefits of having everyone use Python are overestimated, and the benefit of better statistical tools in R and SWE skilling up in statistics is underestimated.

  • _Wintermute 2 days ago

    > It’s not necessary though, because the R community does a good job avoiding name conflicts

    That has not at all been my experience. Loading the tidyverse pulls over 1000 things into your global namespace and clobbers several standard library functions in the process. Never mind that seemingly every single package has its own "filter" function.

    When you start getting different results based on the order you import packages it's usually a bad sign.

    • egecant 2 days ago

      Maybe its because you load tidyverse, which is a library of libraries, instead of loading only what you need? It seems like an issue related to your understanding of the tidyverse rather than R.

      • _Wintermute 2 days ago

        I understand the tidyverse perfectly well. Unfortunately it's become a habit of R users to import it at the top of every R script without thinking of the consequences of other users/maintainers.

    • tway_GdBRwW 2 days ago

      Yes, because tidyverse should be called tidycurse. It's designed to be easy to teach, under the assumption that ALL you learn is tidycurse. Just don't use it!

      Use datatable instead.

ggrothendieck 2 days ago

The poorman package (on CRAN) implements a lot of tidyverse with no dependencies. Other packages that provide alternate implementations are datawizard and tidytable.