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.
Bay Area ACM: Software Package Development Processes and R