The package system is absolutely horrid, a barely working mess if I ask it anymore complicated than "install package, any version is fine". Installing older packages because my distro lacked a compatible library for the newest was met with rather bizarre error messages. I think Latex has solved this much better. Even NPM solved this better. If NPM has solved package managing better than your solution it's time to rethink your life choices because that is a very low bar.
The object and type system seems to be made of wet tissue paper, I always feared that staring at the code too long might break it. It also doesn't help that every package has invented a completely new way to pass parameters, how to name parameters and functions and how it all sticks together. Also nevermind trying to read numbers larger than a signed 32bit number, R can't handle anything beyond 32bits for reasons that aren't entirely clear to me. Though last I tried it was very happy to just dynamically convert to a float32 instead which immediately makes it worse than Javascript because atleast Javascript's Number type is consistently a float and doesn't magically turn into the burnt remains of my hopes and dreams.
On top of all that horrid stuff sits R Studio. When first installed on my computer, R Studio was of the opinion that the best option was to install itself as default program for EVERY SINGLE FILETYPE completely ignorant on if it understands it. I'm still trying to cleanup my laptop from the mess it made. The IDE has varying opinions on how to write programs, usually none of the good ones. It also likes to sprinkle it's caches and configs and other files into every corner of my filesystem. Every folder is Free-For-All for this IDE. My home directory should not be used to re-enact scenes from Battle-Royal shooters, especially not by tools meant for developing software.
It's not light years ahead of the competition, it's not even competing. It's sitting on the sidelines trying not to fall over from the stress of being outside and exposed to the elements.
I'm happy I passed my statistics course because I will never ever touch this language again. Ever. I'm still cleaning up the pieces from using it for only half a year and I would rather port the Linux kernel to Brainfuck before using this language.
Sorry to unload all of that on you but I'm very frustrated with R.
Seriously though, R is lightyears ahead in things that actually matter.
There are hundreds of advanced statistical models that you can only run in R. Coded by the people who invented those models, most likely.
Python can do basic linear models via statsmodels, that's pretty much it. Not enough to cover even the baseline of common data processes or inferential tasks of a researcher or statistician.
So either R, commercial packages or you code everything yourself, which makes so sense for hundreds of reasona, among them that you have to study the R codes of the authors anyway.
So please, be real
Multiple bugs even, some of which were rather popular on the bug tracker.
> R doesn't support realky big numbers that you will never need except with a add on package. Horrible.
I needed them, so I don't particularly care that you think it only matters in add on packages. I do recall my dad once claiming nobody should need more than 2GB of memory ever. That was around 2005 or so.
>There are hundreds of advanced statistical models that you can only run in R. Coded by the people who invented those models, most likely.
Which is the most concerning fact of them all.
> So please, be real
I'm real. This was a real application of R as a software and it sucked. How is this not real?
I mean I'm not saying you can't write anything in the language, you can certainly write code in it and make it work in a reasonable timeframe, atleast one advantage over Malbolge. But it doesn't change the fact that when I try to write something it feels wrong and painful and the software ecosystem seems to be written by non-engineers doing non-engineers leading to unmaintainable code everywhere with no standards whatsoever.
I would not consider R to be a language fit for anything but statistics and there only by virtue of, as you mention, having some packages that might be useful, which is a horrible reason to keep using a language.
It's not that packages are useful. It's frankly that they are necessary. R is a complete statistical package that allows you do to your job or do research. It's the only statistical package that does this for free.
Given that there are no alternatives, it's hard to even see your point here. You wanna switch languages because you don't like R? Great, but now you can not do your job. What's the point?
In research, where R is used, you have to run a lot of models per project in a short amount of time. You could theoretically go back to the paper. Often, understanding the model on paper is quite different from understanding the implementation. So after some study, you dig up the code (in R), and programm the model into another language (where I think Python will be the only option bc. of NumPy). And then you have spent a couple of days doing basically nothing. Now you have wasted everyone's time, and you probably have bugs or don't implement a minor details correctly so that your results differ from R, so that you are giving wrong results or at least invite issues with replication...
Look, I don't like using R either. For my research, I use prefer to use Matlab as I anyway do have to program most of the things myself.
But when it comes to running quick stats analysis, I sure as hell fire up R, just like everyone else. I'd be a total idiot if I go and write up every standard and non-standard method in my language of choice. Also, I'd be fired.
No, R is not for you, since you care about 64bit numbers and typecasting elegance and like to write everything yourself.
But R is really popular with many other people, people who can fire it up, for free, do some rather advanced stats analyses without spending weeks of prep, and get their results out fast and in a reliable, replicatable manner.
Assume packages and RStudio work as advertised and he/she does not need 64bits.
I.e., "Disregarding the weak points, what weak points are there?"
edit: And as was explained - they hardly have an effect on most R workflows. I write R. I know people who write R (and Python) for production models. We could care less about 64 bit, and I for one think RStudio is rock-solid and one of the best IDEs I've ever used. And the tens of comments in this very thread about the package system show that no, it is not a foregone conclusion that packages are poorly handled.
Does this not seem worrying? If there's exactly one implementation in use by everyone, and nobody has read the original paper closely enough to build it independently & check?
I mean thats a nice Ferrari u got there, but it still not going to cross that lake. My boat is a bit weird and rusty... But it is a boat.
And you have a rusty boat.
You feel good about being able to build a boat. What you do not know is, that if you ever need to cross that lake, you don't have the time to build the boat. And you'd find that you need a special boat, so you have to go back to the rusty boat collection and reverse-engineer it anyway. And there are many other things to organize such that you don't even have the time or money to build your boat.
I will refuse to cross the lake until necessary at which point I will evaluate if the safety of my life is worth more than the rusty boat, to which the answer is yes, so I build a new boat.
There are people who need to cross the river. Every day, several times, at different positions that each require different types of boats. These people rely on these boats because although they are rusty and don't look nice, they always get the job done.
Since you do not need to cross the river, you are perfectly content with your Ferrari. Although you could upgrade it to a Ferrari-boat, you just don't need to. You could though. It would take a week, but you could. It'll probably be a great Ferrari-boat, if you did everything right.
But since you have no interest in crossing the river, you don't understand why people use boats. They are obviously slow and not shiny. And, most of all, they are slow on the road. You don't get it, why use boats? And so you say that boats are bad.
But boats are not bad. Boats work for crossing the lake, while your Ferrari does not work except with exceptional upgrades that cost money and time. And people who use boats do not go on the road. They don't need to. But they need to cross that lake, often, and they need their boats.
You can argue all you want, but as long as R is the best language and package for doing statistics, your critique is literally
"R is not good at something R was not designed to do. In theory, my language would be better than R, although it is not because in the real world my language doesn't have the necessary features".
I'm not proposing that "my language would be better", rather, "every language would be better".
(About the object system: which one? There are several of them.)
64 bit integers? Never had a need for this, but maybe there is a package that can add them in?
What's wrong with the package system? I maintain an R package on CRAN and I'm quite smitten with the package system.
I only really started hitting this in the private sector though, never a problem when I was in academia.
The fact that 64 bit is a modern standard doesn't exclude the fact that R cannot under any circumstance handle the vast and overwhelming majority of known numbers.
I feel sorry for the poor souls who turn out to need it, though. R sucks like that.
This kind of thinking is pervasive in a wide corner of statistics and this is pretty much why machine learning stole its crown, that's why I get to hear quips like "Statistics ? Is that even relevant ?"
How much funding, support, mind share, conferences, venture capital yadda yadda does stats get compared to ML -- thats what I mean by losing its crown. All that ML has now could easily have been stat's were it not for the attitude I draw attention to.
Isnt that sad, given that ML in many cases is just stats without the baggage "R can solve all of my problems and whatever R cant solve isnt a stats problem"
This. Sorry had to.
I work in population-level genomics and haven't found this to be a problem (yet?).
Furthermore, what's wrong with the package system? That's one of R's strengths.
I honestly find it far superior to python's 10 different solutions, none of which really work in a foolproof manner (and I use both languages daily).
And the package system is absolutely smooth. I have never till today had any issue and I have used it on a weekly basis for the past 6 years.
I agree that its pretty annoying though.
R has a lot of antiquated, clunky syntax and libraries and mightily unhelpful package documentation, but one thing that isn't borked is the package system - and that's especially compared to python.
For interactive, exploratory/research use R in RStudio beats Python in Jupyter hands down.