3 ms·
Tidyverse is much, much harder to write functions for, which is pretty bad for beginners. The API is lovely, but the non-standard evaluation causes real problem
by disgruntledphd2 6y ago
Tidyverse is much, much harder to write functions for, which is pretty bad for beginners. The API is lovely, but the non-standard evaluation causes real problems for people.
True story: writing tidyverse functions is so hard that I once worked for a company with business critical code running in incredibly long R-scripts with almost no functions, and 100 line pipes.
While that may be an extreme example, base-R is much, much easier to get started writing functions for (like I've been using R for a decade now, and the "idiomatic" way to use NSE with ggplot and dplyr has changed multiple times over that time).
Meanwhile, base-R is fugly, but its solid and backwards-compatible to a fault.
- antipaul 6y agoAs a huge fan of tidyverse, I have to agree. Tidy eval is anything but. However, once they get that right, then tidyverse is close to perfection I think the newish “interpolation” syntax with double braces {{ }} is getting there.
- vharuck 6y agoThe biggest difficulty of NSE is not the syntax, but the requirement to hold parallel mental models while writing the code: symbolic expressions and value manipulation. Juggling will always be difficult.
- disgruntledphd2 6y agoSee, it's changed again! Damnit Hadley, why must you do this to me? (Really I'm bitter because I know that I'll end up maintaining a bunch of important code in version N-2 of Hadley's NSE adventures at some point in the future).
- antipaul 6y agoChanged, yes, and finally in the right direction I would say!
- antipaul 6y ago... and the following is what I mean. I think this is as close to clean and understandable as it can get, for most use cases (variables in functions, including creating new variables): https://www.tidyverse.org/blog/2020/02/glue-strings-and-tidy-eval/ https://www.tidyverse.org/blog/2020/02/glue-strings-and-tidy...