Blog Post

I may have nearly the least programming experience of anyone taking this course because I lobbied to take it before taking the prerequisite course or courses. I simply found that the classes I had taken in the program so far utilized R so much that I needed a solid foundation in it. That being said, when I was an undergrad I took some classes in Java and some classes in HTML. I see similarities and differences with R and both of those languages. I am glad that R has some of the object oriented attributes that Java has. The idea that everything that exists in R is an object and everything that happens with R is a function is very familiar to me from my time studying Java. I see the biggest overlap between R and HTML being in a lot of the way Rmarkdown works. The notion of there being a header and then subheaders being the foundation of the heirchichal organization of the text with additional words designating various aspects of formatting is very famililar from HTML. The thing that R is totally different with respect to (and I see this as a blessing and a curse at the same time) is the fact that in R you can do everything at least two different ways. That is good from the standpoint of less rigidity/ almost less memorization of syntax because if you type what you want to do in an organized and consistent way you can almost guess one of the valid ways of coding up what you are trying to code up. The downside obviously is that there is no one to tell you just which particular way of doing a thing one should actually learn. Also, it is not the case that packages are consistent in terms of which syntax they use - even sometimes within one package! I’d say anyone who is being honest, even the authors of some of these packages, would readily admit that one syntax is enough for a particular package. Finaly, there is one aspect in which R is straightfowardly left wanting: by all accounts it is simply a slow language. There is no tradeoff here: it would be nothing but positive if R were a little (or a lot) faster. Yes there are ways of making R faster than it would otherwise be by coding things up thoughtfully, but this doesn’t change the fact that it is sluggish. Overall, I think R is very fair to the user from a learning standpoint, probably falling for me between HTML and Java in terms of ease of learning. That is I think that R is a little tougher than HTML and not as hard as Java. I will admit, though, that the course I took in Java is kind of the “weed out” course for CS majors at Stanford so it is made intentionally hard.

Written on June 8, 2021