Phys.org is reporting on a recently published paper that suggests all scientific journals should require the full disclosure of source code as a condition of publication. The paper states that only 3 science journals currently require source code.
Open Source Science
The paper makes some very good points. It makes the argument that, as computers play an increasingly important role in scientific research, the code those computers run should be just as open as any other part of the experiment. For other scientists to be able to reproduce the results and improve on the work, they need to have access to all of the materials used. Withholding the source code is akin to censoring out part of the research: it prevents others from continuing where the original research left off.
This is, of course, the exact reasoning behind free software licenses such as the GPL. Work on one project should be easily applied to all others, and anyone who benefits from that work must give back any improvements or changes they made. This principle has worked brilliantly well for web servers, browsers, and operating systems, so why not for science?
The Phys.org report then goes on to comment on an issue that is all too familiar:
The team acknowledges that many researchers are clearly reticent to reveal code that they feel is amateurish due to computer programming not being their profession and that some code may have commercial value, but suggest that such reasons should no longer be considered sufficient for withholding such code. They suggest that forcing researchers to reveal their code would likely result in cleaner more portable code and that open-source licensing could be made available for proprietary code.
This is a sentiment that I have seen countless times. Developers will claim they will release the source code “once they clean it up”, or outright refuse to release source with claims like “You would laugh if you saw the code”. This is a very dangerous mentality, and seriously hinders open source adoption outside of professional development circles. Amateur programmers should not fear releasing their code due to mockery.
The paper’s determination, that forcing scientists to disclose their source code will result in better code and results via peer review, is right on the money. In a field where a single mistake in a computer program could completely invalidate the results of the research, peer review should be an absolute requirement. How can the results of scientific research be taken seriously if there is no published data as to how that conclusion was drawn?