4 ms·
Had to learn R for a statistics course. It was honestly the worst programming language I've ever used and I've once wrote something in Malbolge. The package sy
by zaarn 8y ago
Had to learn R for a statistics course. It was honestly the worst programming language I've ever used and I've once wrote something in Malbolge.
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.
- zwaps 8y agoOkay so Rstudio had a bug and R doesn't support realky big numbers that you will never need except with a add on package. Horrible. 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
- zaarn 8y ago> Rstudio had a bug 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.
- zwaps 8y agoBut R... is a language for statistics. It's not a language for anything else. RStudio is pretty good now, I have never had issues with it. But you could, you know, use your extensive programming skills to use something else? 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.
- zwaps 8y agoWhy do software engineers seem to care about things that likely matter very little in applications, while forgetting about stuff like if the thing is actually able to solve the problem you are trying to solve? 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.
- zaarn 8y agoExcept I don't have a ferrari, I have a workshop where I can build a vehicle for any purpose with materials that are the most fitting in performance and price for the task, down from a simple wooden gokart to a Saturn V launcher stage. And you have a rusty boat.
- zwaps 8y agoYou have a workshop that could theoretically build a boat, but since crossing the lake is not your job, you don't do it. 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.
- zaarn 8y agoI only needed to cross the river once and I'm horrified that there is only a rusty boat and I will complain about that 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.
- zwaps 8y agoYou almost got it. 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".
- jejones3141 8y agoSame here; I've tripped over various of the misfeatures described in http://arrgh.tim-smith.us/ http://arrgh.tim-smith.us/, which I wish I'd had when I started. (About the object system: which one? There are several of them.)