tfehring 2 days ago

One concrete example: R has 5 distinct, actively maintained class systems, at least 3 of which are somewhat commonly used for new projects. I.e., there are 3+ reasonable ways to declare a class, and the class will have different semantics for object access, method calling and dispatch, etc. depending on which one you choose.

Another: R can’t losslessly represent JSON because 1 and [1] are identical. That’s a float (well, float vector) literal by the way, the corresponding int literal is 1L, though ints are very prone to being silently converted to float anyway.

rout39574 2 days ago

The R development community is (was?) consciously focused on single operator managing their stuff on their workstation.

Considerations like repeatable procedures, reliable package heirarchies, etc. were clearly and more or less politely Not Interesting. I spent several years with one of my tasks being an attempt to get the R package universe into Gentoo, and later to RPM packages.

I wouldn't say the R devel community was rude about it, but the systems-administration view of how to maintain the language was just not on their radar.

At the time I was trying to provide a reliable taxonomy of packages to a set of research machines at a good sized university. Eventually, I gave up on any solution that involved system package managers, or repeatability. :)

So if you're a researcher driving your own train, R is freakin' FANTASTIC. If you're the SA attempting to let that researchers' department neighbors do the same thing on their workstations, anticipate fun.

  • dataspun 2 days ago

    I think this SA perspective is outdated or perhaps never adequately investigated. Packages like renv solve for these issues, and they work great.

tomrod 2 days ago

As someone who uses Python, R, Go, Rust, Fortran, and Java...

I would never write a full stack application in R. Terrible maintainability.

  • chaosist 2 days ago

    I would have said this a year ago but R is a language for statisticians and not software engineers. It took me forever to understand this.

    Statistical Rethinking by McElreath is really what finally got me to see the value of R.

    You can find the python versions of the class and they are certainly not better.

    A full application in R really makes absolutely no sense.

    • tomrod 2 days ago

      I've wrapped R to python before. That was okay, a bit stilted but still could take to production if absolutely necessary.

      You're 100% right that R is great for data scientists (my background) for frontier level academic implementations as well as toy/simple models. It's generally a poor runtime for computation and suffers from much of the same issues as Python for data quality and typing. Python is better for battle-hardened type stuff, has better debugging tools for certain.

      R _can_ be done well, but the juice isn't worth the squeeze typically.

  • persedes 2 days ago

    as a maniac who has written a full stack application in R: I agree. It is easy to get something out of the door quickly for the average R user, but maintenance will show you quickly how brittle everything is.

    • tomrod 2 days ago

      Hello fellow maniac!

      Glad to hear the agreement. Little small projects are so fun. Stadium-sized pools full of spaghetti less so!

  • waveBidder 2 days ago

    I'm in this picture, and I'm begging my collaborators to move to Julia or Python.

waveBidder 2 days ago

in addition to neighbor, there are multiple standards for everything, even core language features like objects, which makes reasoning about code difficult. dplyr and friends, which make the aforementioned data analysis easier, require interacting with one of the least consistent metaprogramming systems I've ever dealt with.