If Newton could see further because he stood on the shoulders of giants, then it behooves us to make sure that those shoulders will still be around for those who come after us. It's been one of my greatest pleasures to drink from the original source: I've had the pleasure of reading Einstein's papers on relativity and deciphered the geometric constructions of calculus in the Principica. There is something almost magical about tracing through the exact lines of arguments made by the great scientists of the past.
Today, computation has become an integral part of doing science. However, even though computation has become vital to the doing of science, we have done a terrible job of preserving the programs that make these computations possible. Who hasn't stumbled onto a science article that describes a program with remarkable properties, only to find that the URL has long deteriorated into a 404 error? If these programs can no longer be found, how can the researchers of the future stand on our shoulders to see further than us?
Fortunately, we can learn from our brothers in the programming world. They have already solved this problem in the development of open-source programming, and setup their own version of the library of Alexandria, in terms of large, well-funded, well-maintained open-source repositories such as github and sourceforge. The solution for computational scientists seems remarkably easy, if we can only get scientists to publish code in an open-source manner.
But changing the culture will not be easy. I recently had the pleasure to meet Cameron Neylon, a dashing figure in the fight for better – and future-facing – scientific practices. He has been a heroic voice for everything from open-access publishing to open notebooks in the lab. And now he has launched a new journal Open Research Computation that will fuse open-access publishing with open-source programming. It's goal is to provide a touchstone of how computation should be done in science.
We have a real need to change the way we do things. We must make it our practice to ensure, not only that the programs we write, are saved for future generations, but also to write them in a way such that they can be easily reused, dissected and repurposed. Only then can the scientists of the future stand on our shoulders to peer a little further into the mist.comments powered by Disqus