Live data from Hacker News

A newcomer’s (angry) guide to R

arrgh.tim-smith.us

161–170 of 232 posts

Re: A newcomer’s (angry) guide to R

#161
post #132

Earlier quoted context omitted.

> I just don't see a better alternative Julia?

The biggest Julia cheerleaders gave up years ago. That doesn't mean the language is dead but it's not a great sign for a niche lang

Actually, what is the current status of Julia? Can anyone in the know share a bit on the perspectives as they stand?

Re: A newcomer’s (angry) guide to R

#162
post #19

HN is predisposed to hate R because everyone here is coming from a "real" programming context. Their concerns are generally valid, but they should keep in mind a lot of people using do not have a software development background and do not care that the language is not elegantly designed: they just want to get analytical work done. In that respect, R is far, far superior to Python. Even something as simple as installi…

HN is predisposed to hate R because everyone here is coming from a "real" programming context. There is that. Matlab has the same problem. One problem with "real programming languages" is that programmers who grew up with C don't see any need for built-in multidimensional arrays. This is one reason FORTRAN is still around, and why array work is straightforward in Matlab and R.

It seems to be partly because they're rarely used in general purpose code even when they are there. Just look at C#.

Re: A newcomer’s (angry) guide to R

#163
post #140

Earlier quoted context omitted.

Well pip install library needs root, which you probably don't have. So now you have to teach them about making, and acitvating, virtual environments. Also, they can't easily search through the packages in a nice GUI and just click on the one they want to install.

This is bad advice. Pip should be used in virtual environments, and not to install system packages

There's nothing wrong with pip for installing per-user packages outside of virtual environments.

Re: A newcomer’s (angry) guide to R

#166
post #149

Earlier quoted context omitted.

try pip install --user or virtualenvs

Ubuntu doesn't ship with pip or virtualenv. In fact it ships with a version of Python where the built-in equivalent to virtualenv, pyvenv, is explicitly disabled. So you have to install extra Python packages, as root. You have to have that Python experience that guides you to install as few of them as you can, just enough so you can get started with a virtualenv, so you don't end up relying on your system Python envi…

That sounds like a major problem with Ubuntu, rather than with Python or pip.

On Windows, meanwhile, the standard Python installer gets all this set up properly in like three clicks. Better yet, because it installs per-user by default, "pip install" just works. And if you still choose to install it globally, it will fail, but it will tell you exactly what you need to do to make it work:

    Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: ...
    Consider using the `--user` option or check the permissions.
One can't help but wonder how we ended up in a situation where the most popular Linux distro somehow does Python worse than Windows.

Re: A newcomer’s (angry) guide to R

#167

I use R a lot and I have to say some of these comments are weird. 1. R and Lisp are hardly alike even if it was inspire by it. It's like saying Erlang and Prolog is very similar. If you want learn FP do it in Erlang, Lisp, Haskell, etc.. Don't do it in R, it's half baked. 2. R syntax is ugly with warts. But built in datatype like dataframe, factor type, NA (missing value notion) value, make this language much better…

> R and Lisp are hardly alike even if it was inspire by it. It's like saying Erlang and Prolog is very similar. If you want learn FP do it in Erlang, Lisp, Haskell, etc.. Don't do it in R, it's half baked.

They are very alike in the underlying core design, not in how you use them.

In R, everything is an expression, and every expression is a function call. Even things like assignments, if/else, or function definitions themselves, are function calls, with C-like syntactic sugar on top. You don't have to use that sugar, though! And all those function calls are represented as "pairlists", which is to say, linked lists. Exactly like an S-expr would - first element is the name being invoked, and the rest are arguments. And you can do all the same things with them - construct them at runtime, or modify existing ones, macro-style.

So in that sense, R is actually pretty much just Lisp with lazy argument evaluation (which makes special forms unnecessary, since they can all be done as functions), and syntax sugar on top. Where it really deviates is the data/object model, with arrays and auto-vectorization everywhere.

Re: A newcomer’s (angry) guide to R

#168
post #50

I don't understand why HN hates R. HN loves lisp, and R as a language shares a much greater affinity with lisp languages than python or Go do. The language was born out of the original authors reading SICP (as statisticians). Sure, many of the users of R molded it to look like what they were used to (S), but that just highlights the powerful metaprogramming capabilities of the language.

Whoa there. I use lisp and R. While R evolved from lisp, which let's me understand how it does certain things, I don't know if I'd describe it as more like lisp than python. Indeed, the analogy I use to describe to friends why I have a strong emotional distaste for R is to use the following analogy: Imagine you grew up as a heterosexual male. In your early years, you have fond memories of a young girl whom you had a…

> While R evolved from lisp, which let's me understand how it does certain things, I don't know if I'd describe it as more like lisp than python.

It absolutely is more like Lisp than Python, once you strip the syntax away:

https://news.ycombinator.com/item?id=17310259

Re: A newcomer’s (angry) guide to R

#169

Earlier quoted context omitted.

I am always amazed when I hear that people use Python in any type of production pipeline.

Could you please elaborate on that? My company has tons of python code producing reports with reportlab, making UIs with PyQt5, as well as a multitude of small scripts to interact with MySQL. We’ve been nothing but happy with Python in the years of using it.

"I 've done it so it's not so bad" is not a very good argument. I've done a significant data science project in Prolog (with R for the plotting btw) but that doesn't mean Prolog is the go-to language for data science :)

Re: A newcomer’s (angry) guide to R

#170

Earlier quoted context omitted.

While I kind of want to agree with you, I just don't see a better alternative. Do you really want biochemists to have to deal with the horrors of C compilation? In production code I'm very glad my makefile tells clang to fail on absolutely anything, but is that the best we can do? Other commenters have pointed out ways to avoid dangerous things like integer division, but if you think R is hostile then please offer a…

> I just don't see a better alternative Julia?

uf, I’m a working mathematician and just reading julia’s documentarion makes me dizzy... I do not think it fits this use case.
Post reply on HN