Better Code, Better Sharing:On the Need of Analyzing Jupyter Notebooks
This addresses a reliability issue for the scientific and developer communities using Jupyter notebooks, highlighting an incremental need for programmatic analysis to improve code quality.
The paper tackles the problem of poor code quality in Jupyter notebooks, finding through a preliminary study that they are inundated with issues like not following coding practices, unused variables, and deprecated functions, which could propagate to future developers due to their educational nature.
By bringing together code, text, and examples, Jupyter notebooks have become one of the most popular means to produce scientific results in a productive and reproducible way. As many of the notebook authors are experts in their scientific fields, but laymen with respect to software engineering, one may ask questions on the quality of notebooks and their code. In a preliminary study, we experimentally demonstrate that Jupyter notebooks are inundated with poor quality code, e.g., not respecting recommended coding practices, or containing unused variables and deprecated functions. Considering the education nature of Jupyter notebooks, these poor coding practices as well as the lacks of quality control might be propagated into the next generation of developers. Hence, we argue that there is a strong need to programmatically analyze Jupyter notebooks, calling on our community to pay more attention to the reliability of Jupyter notebooks.