Skip to content

Commit 7637759

Browse files
committed
more
1 parent ad2c398 commit 7637759

File tree

1 file changed

+41
-14
lines changed

1 file changed

+41
-14
lines changed

README.md

+41-14
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ The following searches in PyPI turned up nothing: log-linear model;
7272
Poisson regression; instrumental variables; spatial
7373
data; familywise error rate; etc.
7474

75+
This is not to say no Python libraries exist for these things; I am
76+
simply saying that they are not found in PyPI, whereas they are easily
77+
found in CRAN.
78+
7579
## Machine learning
7680

7781
*Slight edge to Python here*.
@@ -85,7 +89,7 @@ that matter, a pure-R version of TensorFlow could be developed.
8589
Meanwhile, I would claim that R's package availability for random forests
8690
and gradient boosting are outstanding.
8791

88-
## Statisical correctness
92+
## Statistical correctness
8993

9094
*Big win for R*.
9195

@@ -126,7 +130,9 @@ In addition, R's new ALTREP idea has great potential for enhancing
126130
performance and usability.
127131

128132
On the other hand, the Cython and PyPy variants of Python can in some
129-
cases obviate the need for explicit C/C++ interface in the first place.
133+
cases obviate the need for explicit C/C++ interface in the first place;
134+
indeed some would say Cython IS a C/C++ interface.
135+
130136
## Object orientation, metaprogramming
131137

132138
*Slight win for R*.
@@ -137,7 +143,7 @@ annoyed by the fact that I cannot print a function to the terminal,
137143
which I do a lot in R.
138144

139145
Python has just one OOP paradigm. In R, you have your choice of
140-
several, though some may debate that this is a good thing.
146+
several (S3, S4, R6 etc.), though some may debate that this is a good thing.
141147

142148
Given R's magic metaprogramming features (code that produces code),
143149
computer scientists ought to be drooling over R.
@@ -150,24 +156,35 @@ Python is currently undergoing a transition from version 2.7 to 3.x.
150156
This will cause some disruption, but nothing too elaborate.
151157

152158
By contrast, R is rapidly devolving into two mutually unintelligible
153-
dialects, ordinary R and the Tidyverse. Sadly, this is a conscious
154-
effort by a commercial entity that has come to dominate the R world,
155-
RStudio. I know and admire the people at RStudio, but a commercial
156-
entity should not have such undue influence on an open-source project.
157-
In addition, it is causing tension among some leaders in the R world,
158-
which is very troubling to me.
159+
dialects, ordinary R and the Tidyverse. I, as a seasoned R programmer,
160+
cannot read Tidy code, as it calls numerous Tidyverse functions that I
161+
don't know. Conversely, as one person in the Twitter discussion of this
162+
document noted (approvingly), "One can code in the Tidyverse while
163+
knowing very little R."
164+
165+
Note: In using the term "Tidyverse," I am not including pre-existing
166+
projects by Hadley Wickham, e.g. ggplot2 (which I use a lot) and dplyr.
167+
Instead, I am referring to things such as tibbles and pipes.
159168

160169
It might be more acceptable if the Tidyverse were superior to ordinary
161170
R, but in my opinion it is not. It makes things more difficult for
162171
beginners. E.g. the Tidyverse has so many functions, some complex, that
163172
must be learned to do what are very simple operations in base R. Pipes,
164173
apparently meant to help beginners learn R, actually make it more
165174
difficult, I believe. And the Tidyverse is of questionable value for
166-
advanced users.
175+
advanced users. See also ["The Tidyverse Curse](The Tidyverse Curse).
167176

168-
Note: In using the term "Tidyverse," I am not including pre-existing
169-
projects by Hadley Wickham, e.g. ggplot2 (which I use a lot) and dplyr.
170-
Instead, I am referring to things such as tibbles and pipes.
177+
The Tidyverse is a conscious promotional effort by a commercial entity
178+
that has come to dominate the R world, RStudio. I know and admire the
179+
people at RStudio, *but a commercial entity should not have such undue
180+
influence on an open-source project.*
181+
182+
In addition, it is causing tension among some leaders in the R world,
183+
which is very troubling to me. For instance, when the lightning-fast
184+
**data.table** package came out, rather than welcoming it as a hugely
185+
valuable contribution to R, RStudio treated it as a competitor,
186+
downplaying it and promoting their own product, dplyr. This is simply
187+
not healthy for an open-source language.
171188

172189
## Linked data structures
173190

@@ -178,6 +195,15 @@ to implement in Python. While this can be done in R in various ways, it
178195
is not as good. Not a big issue in Data Science, but it does come up in
179196
some contexts.
180197

198+
## Online help
199+
200+
*Big win for R.*
201+
202+
To begin with, R's basic **help()** function is much more informative
203+
than Python's. It's nicely supplemented by **example()**. And most
204+
important, the custom of writing vignettes in R packages makes R a
205+
hands-down winner in this aspect.
206+
181207
## R/Python interoperability
182208

183209
RStudio is to be commended for developing the reticulate package, to
@@ -190,4 +216,5 @@ At present, I do not recommend writing mixed Python/R code.
190216

191217
## Thanks
192218

193-
This document has benefited from various reader comments, notably from Dirk Eddelbuettel.
219+
This document has benefited from various reader comments, notably from
220+
Dirk Eddelbuettel, as well as Paul Hewson and Bob Muenchen.

0 commit comments

Comments
 (0)