Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> R, on the other hand, actually resolves dependencies in its package manager

And you have packages like renv which also help isolate specific versions of packages to make portable environments even more reliable.



‘renv’ (only) does more or less what pyenv does. Contrary to what the parent comment says, R doesn’t actually do any dependency resolution at all, and the official package repository (CRAN) doesn’t even archive many old versions (though MRAN does).

I strongly prefer R for data science, but its dependency management story is poor, even compared to Python’s (which, in turn, is poor compared to Rust/Ruby/…).


That's simply not true. R doesn't store old versions, which is actually brilliant because your code breaks when your dependencies rot.

Python will silently upgrade numpy as a transitive dependency and break everything, which is much worse. MRAN also has daily snapshots which is normally how i handle stuff that will never be updated.

I also specified building an R package which does handle dependencies versus the python equivalent which does not.

I'm not saying R is good, I'm just saying Python is way worse.


> even compared to Python’s (which, in turn, is poor compared to Rust/Ruby/…)

Compared to Rust? Sure. Compared to Ruby? Maybe in the way that a lockfile isn't automatically generated when using pip.

Hating on Python's dependency management is a meme at this point. You could do a lot worse than the current pip + venv, and upgrading to something like poetry or pipenv is pretty painless. I'm pretty sure 99% of problems occur because people don't pin stuff.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: