Learn more about using open source R for big data analysis, predictive modeling, data science and more from the staff of Revolution Analytics.

September 09, 2010

What can other languages learn from R?

At the ASA Statistical Computing Award ceremony in Vancouver last month, R's co-creator Ross Ihaka said that R began as a "system that was functional and well-designed, and made it easy and fun for other people to help". R's other co-creator, Robert Gentleman, also described the ability of others to contribute as "the exit strategy" that made R so successful. And the success is undeniable: the rate at which contributors from around the world have created new add-on packages for R has grown, literally, exponentially:

The chart above shows the number of packages -- third-party add-on libraries for R -- added to the CRAN archives over the past decade, with data to the end of August, 2010. (And this chart doesn't even include packages released outside the CRAN system, such as those for the BioConductor project.) The CRAN system, the result of excellent design and untold hours of implementation by R-Core members Kurt Hornik and Fritz Leisch, is the key contributing factor in this growth. R's package system together with the CRAN infrastructure provides a standardized process for authoring, documenting, validating, building and distributing packages to millions of users worldwide. (If you're interested in the details of R's package system, be sure to check out the Writing R Extensions manual.)

Can other programming languages learn from R's success in enabling a vast development community around a core language? That's the question that the ACM's Bay Area chapter will ask in a meeting on Wednesday, September 15 in a meeting titled Software Package Development Processes and R. Spencer Graves and Sundar Dorai-Raj and will use the R system as an illustration of a good software package development process, and see how those processes can be applied to other language systems.

TrackBack

Comments

You can follow this conversation by subscribing to the comment feed for this post.

I would frame it as What has R learned from other programming languages. For example, I remember first being drawn to Python (around 1997) by the sheer number of libraries available. Many other successful languages and systems have also encouraged the creation and sharing of libraries.

It may be that R is the first example amongst statistical languages, but there are plenty of pre-existing examples in other more general languages, including the ability of adding 'packages' from a centralized system. The nice thing in R is that for many systems is just a menu item away.