5 ms·
In an ideal world you would be right, but that's not how the funding structures for academic research are set up. Think of a research lab as a company that get
by fmap 8y ago
In an ideal world you would be right, but that's not how the funding structures for academic research are set up.
Think of a research lab as a company that gets paid per prototype and then has to market the concept for the next prototype in an infinite loop. If you can't package up what you're doing into a sequence of small prototypes then you're not getting paid.
- ajuc 8y agoThe requirement for publishing in a scientific journalshould be opensourcing all the code used. You can't expect the results to be reproductible 20 years later otherways.
- skummetmaelk 8y ago20 year old code that has not been maintained most likely would not run on a modern system anyway, unless it is extremely simple.
- azernik 8y agoResearch labs operate on a very slow tech upgrade cycle anyway; since code is handed down from assistant to post-doc to grad student, complete rewrites would take up a significant fraction of a person's time at any given lab, and so codebases are often as long-lived as the labs in which they live. We're talking decades-old FORTRAN here. Running twenty-year-old software is a barrier for some labs, but not all.
- _Wintermute 8y agoMy experience is the opposite, that a lot of labs are running R code that won't work 6 months later, and no one actually recorded the package version numbers that were used.
- azernik 8y agoTBF, the experience I have is with physics and mechanical/civil engineering labs, where there historically hasn't been much of a reliance on R. And in any case said experience is several years out of date. Speaking of, I haven't played with R - what are its standard methods for handling dependencies? I'm particularly enamored of the pip and npm way of doing it, where you create a version-controlled artifact (requirements.txt and packages.json, respectively) that defines your dependencies. Does R not have a similar system, or do people just not use it?
- _Wintermute 8y agoR isn't fantastic for handling dependencies. If your code is bundled up as a package then you can specify version numbers for your dependencies, but I don't know of any equivalent to `pip freeze` to actually list these. Installing anything other than the latest version of a package is a bit of a pain, and setting up environments for separate projects is pretty much unheard of. I'm a bit bitter about the whole "writing reproducible code in R", as I'm currently wasting a lot of time trying to get R code I wrote at the start of my PhD to run again now I'm writing up.
- nonbel 8y agoTheres tools for this: https://rstudio.github.io/packrat/ https://rstudio.github.io/packrat/ https://stackoverflow.com/questions/43018752/version-control-alternatives-to-packrat https://stackoverflow.com/questions/43018752/version-control...
- ajuc 8y agoIt can always be ported. Without the code you're stuck.