5 ms·
My gripes with R are that the language itself is a mess and I found it hard to reason about code. The ecosystem is what keeps people using it.
by noelwelsh 3y ago
My gripes with R are that the language itself is a mess and I found it hard to reason about code. The ecosystem is what keeps people using it.
- tpoacher 3y agoI agree and disagree. R itself isn't a mess. Typical R code tends to be. In theory, this reflects one of R's strengths, which is its ability for flexible metaprogramming. In practice, this becomes a weakness because people abuse it to introduce all sorts of inconsistent notation that makes zero sense without reading the documentation of the package even to understand 'syntax'. From a language point of view, R is not too bad. The ecosystem is a mostly positive thing, but at the same time, it's the variety in the ecosystem that's creating this chaos around offerred packages and R code in the wild.
- citrin_ru 3y ago> R itself isn't a mess. Typical R code tends to be. The same can be send about Perl - it is not hard to write readable code but there is code around which was written without regard to readability/maintainability or any consistency at all. Languages which are trying to force a single style (e. g. indentation as a part of the syntax like in Python or configurable format tool like 'go fmt') and have as little TMTOWTDI as possible are favored nowadays.
- j7ake 3y agoR is king for analysis of tabular data e.g. data exploration, model fitting, and visualizations where all the code can be contained in one .R file. R not as good as other languages for production-level work though or for analyzing non-tabular data (e.g. streaming data, or data in unstructured formats). I also find R packages (writing, installing, documenting) to be a better experience than the python packaging system. i.e., very little rewrite necessary to convert a bunch of R code into an R package.
- mellavora 3y agoHuh. Those are my gripes about python, and it would also die without the ecosystem. Except that python also lies about it. "You don't need curly braces, indents are enough" "what do you do when your code is more than 80 chars long?" "Oh, that's simple. Because Python is simple. You wrap it in a curly brace." If you have a blank line between two parts of a function, why does this fail when you paste it into the interpreter? Solutions? Oh, that's simple. Just put four spaces on the blank line. Unless your linter doesn't like that, because it means you have a line with trailing spaces. And I'm not even touching advanced crazyness, such as package management and versions. Thanks for listening to me complain. I'm going through a difficult transition right now.
- noelwelsh 3y agoI'm definitely not defending Python. I think that language is a mess as well. There is no law of conservation of programming language derps, unfortunately.