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

Add to that:

- documentation is all in PDF format

- can only install packages from the interpreter

- testing libraries not feature complete

- weird namespacing

- poor test coverage in popular packages

- no mature webserver



The namespacing drives me nuts but it doesn't get mentioned very often in these kind of threads. How are people just ok with loading everything in the same namespace? You can use ::, but then that can have a ton of overhead.


Yeah, the namespacing thing is crazy. If its any consolation, it was much, much worse before R 3.0. Originally, packages used to clobber each other's namespaces, which lead to much hilariousness and non-deterministic bugs.

Now those hilarious bugs only happen at the REPL, which is a little better. If these kinds of bugs cause problems for you, i strongly recommend creating packages for your analysis/projects. It doesn't add that much complexity (with devtools, at least) and it does avoid a lot of these problems. Also, R packages require documentation, which is better than many other languages.


I've attempted to address the documentation issue at https://rdrr.io

The test coverage issue is what originally prompted me to get involved -- I was evaluating different EM solvers and found a lot of crazy obvious bugs (parameters backwards or totally ignored). There's a lot of room for improvement on the quality front. MRAN and Tidyverse are thankfully making some headway.


can only install packages from the interpreter

Not completely sure this is what you mean, but you can certainly run install.packages("package") right in your code, doesn't have to be done interactively. Usually want to first check if it is already installed, like with require("package").


I thing cshenton wants to install packages without running the R interpreter. Think of pip install, cpan, cargo...


> can only install packages from the interpreter

If the package has been downloaded, it can be installed with R CMD INSTALL




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

Search: