Darrel Ince, Leslie Hatton and John Graham-Cumming have recently made a cogent argument for open computer programs in a paper in Nature called “The case for open computer programs.” (Nature, 482, 485-488. 23 February 2012. doi:10.1038/nature10836). They argue that for science results depending on computation, code should always be published with the results, regardless of its condition (issues such as intellectual property rights notwithstanding). Anything less would hinder validation of and verification of a paper’s principal conclusions. The authors make some interesting suggestions to implement and streamline code publication.
The scientific world is debating the question of releasing codes, and policies in various fields range from mandatory release of codes to written descriptions of them. Astronomy journals as yet do not require the inclusion of code, but authors increasingly include links to codes and papers describing them, or provide descriptions of their codes.
Ince, Hatton and Graham-Cumming point out that scientists are generally much too trusting of software, which is written by humans and therefore subject to error and breakage. And code descriptions, however well prepared, suffer from errors of ambiguity ofinterpretation, (“the curse of ambiguity”), inaccuracies and lack of reproducibility on different platforms. Dissection of code by the scientific community will ultimately be the best way to validate a paper’s results. Release of code will, however, only be useful with a full description of its provenance, including references to algorithms, hardware and software platforms used for development and testing, and so on.
While there are many barriers to releasing code, Ince et al. make a number of suggestions for overcoming them, including:
- Adoption by journals of standards for describing and packaging code, and for including or referencing code in publications.
- Development of community code repositories, supported by funding agencies.
- Development of tools that enable integration of code into data, graphical displays and text.
- Expecting researchers to provide modular description of software that supports a result.
- Expanding college courses to include the concept of reproducibility.
I wish to thank Jessica Mink for drawing my attention to this article.