3 ms·
In general this idea may be true, but for the tidyverse it's just a load of horse. Hadley Wickham is a very talented developer, and what he's particularly tale
by dash2 5y ago
In general this idea may be true, but for the tidyverse it's just a load of horse.
Hadley Wickham is a very talented developer, and what he's particularly talented at is writing interfaces that are easy for people to use. dplyr, a key part of the tidyverse, is a great example of that. It breaks data tidying up into a few simple steps that can be chained together. It's the descendant of an earlier iteration (plyr) and Hadley learned from that and just kept polishing the interface.
There's a similar story with tidyr. Reshaping data from wide to long is a complex operation. Base R has a reshape() function and using it has given me permanent PTSD. It was impossible to get right until you read the documentation. After you read the docs - still impossible. Hadley wrote the reshape2 package, which improved things a bit. Then there was tidyr::gather() and spread(). Finally, we got tidyr::pivot_wider() and pivot_longer(), and at last I can be reasonably confident of getting the results I need without too many tries.
The tidyverse is hugely popular for just this reason. Without it, I'd probably have abandoned R. I certainly wouldn't dream of teaching it. Ditto Rstudio. Calling these people parasites is absurd.
- macleginn 5y agoI agree with your assessment of the claims made in this post, but I want to note that for me the tidyverse culture became the reason to abandon R for all use cases where it has decent alternatives. R is not pretty, but it is also not super hard, and it has some internal logic. tidyverse's logic is orthogonal to that of R, it is a different data-manipulation paradigm, which I know have to know in addition to having to know R itself---not that you can really skip this part. Also, as it has been already mentioned here, this layering doesn't help with debugging. ggplot2 did a similar thing with plotting. Together these two projects made R more accessible-like and, IMO, seriously damaged the culture around it.
- asdff 5y agotidyverse has ruined stackoverflow. So many questions could be answered with base R, and sometimes you might need to do base R if you want your code widely compatible, but people insist on submitting some arcane ggplot2 or dpylr code instead, and nothing is learned about R.
- rossdavidh 5y agoOne is reminded of javascript and jquery, a few years back.
- dash2 5y agoSure! It's brought lots of neophytes into the language, who don't really understand base R. That's a problem of success. If we were still stuck using interfaces like base::reshape, base::merge and (shudder) the lattice package, then there'd be fewer users and they'd all be more expert by necessity.
- rossdavidh 5y agoJust to add an anecdatum, as a python programming who has started using R in production, I find dplyr to be less clear than base R. Not that either one is clear.
- mbauman 5y agoIt's interesting, though, that those "clean" interfaces come with the horrors of non-standard evaluation and have caused a rather large divide between the tidyverse and base R. I fully disagree with the disparaging aspersions or even motives that TFA leans towards, though. I can see how this would arise out of a local minimum. The "beauty" of R has always been its core DataFrame abstraction and the fact that a table is a language primitive — and that's where 90% of the consistency came from (from my outsiders' vantage point).
- dash2 5y agoIf you think data.frame is beautiful or consistent, try and guess what these do: d <- data.frame(a = 1:3, b = 1:3) d[4,] <- 1:3 # or d$c <- NULL # or d[c(T,F,T,F), 1] <- 1 Error handling? Who needs it?
- mbauman 5y agoHah, no I don't mean its _behaviors_ are beautiful by any means! The "beauty" is just that it had a complicated data structure built in as a primitive _looong_ ago that all packages standardized their APIs on.