A collaboration with Sam Tobin-Hochstadt , Assistant Professor at Indiana University.
There has been some buzz on social media about this " Extremely Angr y" Twitter thread. Mike Hoye, Engineering Community Manager for Firefox at Mozilla expressed frustration about getting access to the products of research. It turns out that many other people are angry about this too.
While there are certainly legitimate aspects to these complaints, we’d like to address a specific misperception from this Twitter thread: the claim that "CS researchers don’t publish code or data." The data simply shows this is not true.
First of all, while the Repeatability in Computer Science study from a few years ago highlighted some issues with reproducibility in our field, it revealed that a significant fraction of researchers (226 out of 402) in systems conferences have code available either directly linked from the paper, or on request.
Additionally, in the last few years, conferences in Programming Languages and Software Engineering have been pushing for more standardization of code-sharing and repeatability of results through Artifact Evaluation Committees. There is a comprehensive summary of Artifact Evaluation in our field here . (In fact, Jean is co-chairing the POPL 2017 AEC with Stephen Chong.) According to the site, artifacts are evaluated according to the following criteria:
- Consistent with the paper. Does the artifact substantiate and help to reproduce the claims in the paper?
- Complete. What is the fraction of the results that can be reproduced?
- Well documented. Does the artifact describe and demonstrate how to apply the presented method to a new input?
- Easy to reuse. How easy is it to reuse the provided artifact?
The most detailed documentation is associated with the AEC for OOPSLA 2013 , where 50 papers were accepted, 18 artifacts passed evaluation, and 3 artifacts were rejected. For PLDI 2014 , 20 of of 50 papers submitted artifacts and 12 passed. By PLDI 2015 , 27 papers (out of 52) had had approved artifacts. Even POPL, the “theoretical” PL conference, had 21 papers with approved artifacts by 2016 .
For those wondering why more artifacts are not passing yet, here is a transcribed discussion by Edward Yang from PLDI 2014. The biggest takeaways are that 1) many people care about getting the community to share reproducible and reusable code and 2) it takes time to figure out the best ways to share research code. (That academia’s job is not to produce shippable products, as Sam pointed out on Twitter , is the subject of a longer conversation.)
While it’s going to take time for us to develop practices and standards that encourage reproducibility and reusability, we’ve already seen some improvements. Over the years, Artifact Evaluation has become more standardized and committees have moved towards asking researchers to package code in VMs if possible to ensure long-term reproducibility. Here are the latest instructions for authors .
Yes, we can always do better to push towards making all of our papers and code available and reusable. Yes, researchers can do better in helping bridge the communication gap between academia and industry–and this is something we’ve both worked at. But the evidence shows that the academic community is certainly sharing our code–and that we’ve been doing a better job of it each year.
Note: It would be really cool if someone did a survey of individual researchers. As Sam pointed out on Twitter , many of our colleagues use GitHub or other social version control and push their code even before the papers come out.