<p><div><div><div><div data-width="100" data-show-faces="false" data-send="true" data-layout="button_count" data-height="21" data-href="http://www.r-bloggers.com/extending-r/"></div></div><div><a data-url="http://www.r-bloggers.com/extending-r/" data-counturl="http://www.r-bloggers.com/extending-r/" data-count="horizontal" data-text="Extending R" class="twitter-share-button" data-via="rbloggers" href="https://twitter.com/share"></a></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="https://xianblog.wordpress.com/2016/07/13/extending-r/"> R – Xi'an's Og</a></strong>, and kindly contributed to <a rel="nofollow" href="http://www.r-bloggers.com/">R-bloggers)</a> </div>
<p><a target="_blank" href="http://amzn.to/29hwmF6"><img src="http://i0.wp.com/images.tandf.co.uk/common/jackets/amazon/978149877/9781498775717.jpg?resize=349%2C509&ssl=1" data-recalc-dims="1"></a><strong>A</strong>s I was previously unaware of <a target="_blank" href="http://amzn.to/29hwmF6">this book</a> coming up, my surprise and excitement were both extreme when I received it from CRC Press a few weeks ago! John Chambers, one of the fathers of S, precursor of R, had just published a book about <a target="_blank" href="http://amzn.to/29hwmF6">extending R</a>. It covers some reflections of the author on programming and the story of R (Parts 2 and 1),  and then focus on object-oriented programming (Part 3) and the interfaces from R to other languages (Part 4). While this is “only” a programming book, and thus not strictly appealing to statisticians, reading one of the original actors’ thoughts on the past, present, and future of R is simply fantastic!!! And John Chambers is definitely not calling to <a target="_blank" href="https://xianblog.wordpress.com/2010/09/13/simply-start-over-and-build-something-better/">simply start over and build something better</a>, as Ross Ihaka did in this [most read] <a target="_blank" href="https://xianblog.wordpress.com/2010/09/13/simply-start-over-and-build-something-better/">post</a> a few years ago. (It is also great to see the names of friends appearing at times, like Julie, Luke, and Duncan!)</p>
<blockquote>
<p><span><em>“I wrote most of the original software for S3 methods, which were useful for their application, in the early 1990s.”</em></span></p>
</blockquote>
<p>In the (hi)story part, Chambers delves into the details of the evolution of S at Bells Labs, as described in his [first]  “<a target="_blank" href="http://amzn.to/29hxvwi">blue book</a>” (which I kept on my shelf until very recently, next to the “<a target="_blank" href="http://amzn.to/29eXPT0">white book</a>“!) and of the occurrence of R in the mid-1990s. I find those sections fascinating maybe the more because I am somewhat of a contemporary, having first learned Fortran (and Pascal) in the mid-1980’s, before moving in the early 1990s to C (that I mostly coded as translated Pascal!), S-plus and eventually <a target="_blank" href="https://xianblog.wordpress.com/2013/05/02/r-for-dummies-2/">R</a>, in conjunction with a (forced) migration from Unix to Linux, as my local computer managers abandoned Unix and mainframe in favour of some virtual Windows machines. And as I started running <a target="_blank" href="https://xianblog.wordpress.com/2009/12/09/karmic-mac-2-2/">R on laptops</a> with the help of friends more skilled than I (again keeping some of the early R manuals on my shelf until recently). Maybe one of the most surprising things about those reminiscences is that the very first version of R was dated Feb 29, 2000! Not because of Feb 29, 2000 (which, as Chambers points out, is the first use of the third-order correction to the <a target="_blank" href="https://en.wikipedia.org/wiki/Gregorian_calendar">Gregorian calendar</a>, although I would have thought 1600 was the first one), but because I would have thought it appeared earlier, in conjunction with my first Linux laptop, but this memory is alas getting too vague!</p>
<p>As indicated above, <a target="_blank" href="http://amzn.to/29hwmF6">the book</a> is mostly about programming, which means in my case that some sections are definitely beyond my reach! For instance, reading “the onus is on the person writing the calling function to avoid using a reference object as the argument to an existing function that expects a named list” is not immediately clear… Nonetheless, most sections are readable [at my level] and enlightening about the mottoes “everything that exists is an object” and “everything that happens is a function” repeated throughout.  (And about my psycho-rigid ways of translating Pascal into every other language!) In particular, I found the part about replacement fascinating, explaining how a command like</p>
<blockquote>
<pre><span>diag(x)[i] = 3</span></pre>
</blockquote>
<p>could modify x directly. (While definitely worth reading, the chapter on R packages could have benefited from more details. But as Chambers points out there are <a target="_blank" href="http://amzn.to/29h7IyB">whole books</a> about this.) Overall, I am afraid the <a target="_blank" href="http://amzn.to/29hwmF6"> book</a> will not improve my (limited) way of programming in R but I definitely recommend it to anyone even moderately skilled in the language.</p>
<p>Filed under: <a target="_blank" href="https://xianblog.wordpress.com/category/books/">Books</a>, <a target="_blank" href="https://xianblog.wordpress.com/category/kids/">Kids</a>, <a target="_blank" href="https://xianblog.wordpress.com/category/statistics/r-statistics/">R</a>, <a target="_blank" href="https://xianblog.wordpress.com/category/statistics/">Statistics</a> Tagged: <a target="_blank" href="https://xianblog.wordpress.com/tag/bell-labs/">Bell Labs</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/book-review/">book review</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/c/">C</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/cran/">CRAN</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/extending-r/">extending R</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/fortran/">Fortran</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/john-chambers/">John Chambers</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/laptop/">laptop</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/linux/">Linux</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/luke-tierney/">Luke Tierney</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/object-oriented-programming/">object-oriented programming</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/packages/">packages</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/pascal/">Pascal</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/r/">R</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/ross-ihaka/">Ross Ihaka</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/s/">S</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/s-plus/">S-plus</a>, <a target="_blank" href="https://xianblog.wordpress.com/tag/unix/">unix</a> <a target="_blank" rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xianblog.wordpress.com/31023/"><img alt="" src="http://feeds.wordpress.com/1.0/comments/xianblog.wordpress.com/31023/" border="0"></a> <img alt="" src="http://i1.wp.com/pixel.wp.com/b.gif?resize=1%2C1&ssl=1" border="0" data-recalc-dims="1"></p>
<p><div><div><div><div data-width="55" data-show-faces="false" data-send="true" data-layout="box_count" data-height="62" data-href="http://www.r-bloggers.com/extending-r/"></div></div><div><a data-url="http://www.r-bloggers.com/extending-r/" data-counturl="http://www.r-bloggers.com/extending-r/" data-count="vertical" data-text="Extending R" class="twitter-share-button" data-via="rbloggers" href="https://twitter.com/share"></a></div><div></div></div><div></div></div>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="https://xianblog.wordpress.com/2016/07/13/extending-r/"> R – Xi'an's Og</a></strong>.</div>
<hr>
<a rel="nofollow" href="http://www.r-bloggers.com/">R-bloggers.com</a> offers <strong><a rel="nofollow" href="http://feedburner.google.com/fb/a/mailverify?uri=RBloggers">daily e-mail updates</a></strong> about <a title="The R Project for Statistical Computing" rel="nofollow" href="http://www.r-project.org/">R</a> news and <a title="R tutorials" rel="nofollow" href="http://www.r-bloggers.com/?s=tutorial">tutorials</a> on topics such as: <a title="Data science" rel="nofollow" href="http://www.r-bloggers.com/?s=data%20science">Data science</a>, <a title="Big Data" rel="nofollow" href="http://www.r-bloggers.com/?s=Big%20Data">Big Data, <a title="R jobs" rel="nofollow" href="http://www.r-users.com/">R jobs</a>, visualization (<a title="ggplot and ggplot2 tutorials" rel="nofollow" href="http://www.r-bloggers.com/?s=ggplot2">ggplot2</a>, <a title="Boxplots using lattice and ggplot2 tutorials" rel="nofollow" href="http://www.r-bloggers.com/?s=boxplot">Boxplots</a>, <a title="Maps and gis" rel="nofollow" href="http://www.r-bloggers.com/?s=map">maps</a>, <a title="Animation in R" rel="nofollow" href="http://www.r-bloggers.com/?s=animation">animation</a>), programming (<a title="RStudio IDE for R" rel="nofollow" href="http://www.r-bloggers.com/?s=RStudio">RStudio</a>, <a title="Sweave and literate programming" rel="nofollow" href="http://www.r-bloggers.com/?s=sweave">Sweave</a>, <a title="LaTeX in R" rel="nofollow" href="http://www.r-bloggers.com/?s=LaTeX">LaTeX</a>, <a title="SQL and databases" rel="nofollow" href="http://www.r-bloggers.com/?s=SQL">SQL</a>, <a title="Eclipse IDE for R" rel="nofollow" href="http://www.r-bloggers.com/?s=eclipse">Eclipse</a>, <a title="git and github, Version Control System" rel="nofollow" href="http://www.r-bloggers.com/?s=git">git</a>, <a title="Large data in R using Hadoop" rel="nofollow" href="http://www.r-bloggers.com/?s=hadoop">hadoop</a>, <a title="Web Scraping of google, facebook, yahoo, twitter and more using R" rel="nofollow" href="http://www.r-bloggers.com/?s=Web+Scraping">Web Scraping</a>) statistics (<a title="Regressions and ANOVA analysis tutorials" rel="nofollow" href="http://www.r-bloggers.com/?s=regression">regression</a>, <a title="principal component analysis tutorial" rel="nofollow" href="http://www.r-bloggers.com/?s=PCA">PCA</a>, <a title="Time series" rel="nofollow" href="http://www.r-bloggers.com/?s=time+series">time series</a>, <a title="finance trading" rel="nofollow" href="http://www.r-bloggers.com/?s=trading">trading</a>) and more...
<img height="1" alt="" width="1" src="http://feeds.feedburner.com/~r/RBloggers/~4/Bk9rJG0WExs"></a></div>