I attended an introductory course in Python programming for scientific purposes last week, and there were a few things, which inspired me enough to write a post about it. During the final day of the course, there was a discussion on if we, as scientists, should share our scripts/programs along with our published papers. In principle, published scientific work should be reproducible for other scientists from the paper itself. This, however, is not always the case, and even if it is possible to do so, it will take a lot of time and effort to implement the method and make it produce the same results as in a given paper. In such cases, chances of someone using your work and for example building further on top of it, is not that high. The dilemma is, of course, that you might risk someone getting ahead of you if you share your scripts. After the discussion, however, I decided that I will share my developed scripts/programs and documentation for all my future published work, making it easy to replicate my results for other scientists reading my papers.
To put it into some context; within my field, we often write scripts (matlab/python/c++/etc) performing various calculations, and those pieces of code are often only used by ourselves to achieve some specific results for our publications, conferences, industry, and so on. For us, programming is a tool to achieve results for a specific problem – and that is it. Since the focus area of the papers we write is not the code, but the overall method and results it creates, it can be cumbersome to try to recreate those results solely based on the published paper. After all, some of these scripts contain months or years of work, love, sweat, and tears. However, when the scripts have served their purpose of giving the results, they will often be stuffed away in some folder somewhere, and new scripts are written for the next publication/project.
I think that it is important to share as much of our work as possible between scientists, and I think that sharing programs/scripts between each other whenever possible, is just as important. I have the feeling that some people within the scientific community are scared of sharing too much of their work, afraid to not to get proper credit or to be taken over by someone “stealing” it. I can understand that feeling a bit, but I also believe that scientists not scared of sharing as much of their work as possible, will have a larger impact within their field in the end – and even achieve a higher number of citations. Of course I know that there are situations where this is not possible, and of course I realize that people do research for different reasons, but as for me, I would be very happy if any of my work is used by someone else. Even if they end up making an improved version of it, I would still feel that my work would have inspired others to get to where they are. I love fiddling with my own project and scripts, but I realized that what really motivates me is when I know others will use my work in the future as well. If there is a chance that my work can make others’ life easier in some way, I wouldn’t mind spending a bit of extra time doing things like making nicely documented scripts, and making them accessible for anyone online.
After all, what are scientific results worth unless other people can use them for something?