Its finally happening! Scientists and the journals they publish in are starting to see the value in well documented human readable code! Below is an article in nature written by Helen Shen, it outlines the benefits of using coding notebooks. I will highlight the findings here but would encourage people to read the article in its entirety.
Interactive notebooks: Sharing the code
R-Bloggers article that lead me to the Nature paper. Demos R and Jupyter
- “Free, open-source software package called IPython, which helps researchers to keep a detailed lab notebook for their computational work.”
- “Students [researchers etc.] write explanatory text and intersperse it with raw code and the charts and figures that their algorithms generate.”
- “Designed to make data analysis easier to share and reproduce, the IPython notebook is being used increasingly by scientists who want to keep detailed records of their work, devise teaching modules and collaborate with others.”
- “Some researchers are even publishing the notebooks to back up their research papers — and Brown, among others, is pushing to use the program as a new form of interactive science publishing.”
- “Pérez and Granger saw that data scientists found it hard to share detailed but understandable descriptions of their raw code that would allow others to build on their research. That is partly because many scientists in computation-intensive fields write code in an iterative and piecemeal fashion as each analysis reveals new insight and spins off multiple lines of inquiry. Keeping track of the different versions of code that produce various figures, and linking those files with explanatory notes, is a headache. And what gets published is usually not detailed enough for the reader to follow up on. “In my own computational physics work,” says Granger, “a high-level description of the algorithm that goes into the paper is light years away from the details that are written in the code. Without those details, there is no way that someone could reproduce it in a reasonable time scale.
The IPython notebook addresses both issues by helping scientists to keep track of their work, and by making it easy to share and for others to explore the code.”