Earlier quoted context omitted.
It's interesting that it's often easier to get something 25+ years old running because I need fewer things. Not so hard to find, say "DosBox" and and old version of Turbo Pascal.
When I was in my 20s I managed to get a contract updating some control software for a contact lens company on the basis of my happening to own an old copy of Borland C++ 1.0.
Challenge to scientists: does your ten-year-old code still run?
71–80 of 487 posts
Re: Challenge to scientists: does your ten-year-old code still run?
#72> Today, researchers can use Docker containers (see also ref. 7) and Conda virtual environments (see also ref. 8) to package computational environments for reuse. Docker is also flawed. You can perfectly reproduce it today but what about in 10 years. I can barely go back to our previous release for some dockerfiles.
Even if you remove build versioning and all transitive dependencies from your env (making it less reproducible...) they will break pretty damn quick.
Re: Challenge to scientists: does your ten-year-old code still run?
#73Re: Challenge to scientists: does your ten-year-old code still run?
#74The day when code used to produce a paper must also be published can not come soon enough.
In all my papers the results were produced on multiple days (spanning months), with multiple versions of the code, and they are computationally too expensive to reproduce with the final version of the code. I'm trying to keep track of all the used versions, but given that there is no automated framework for this (is there?) and research involves lots of experiments, it's never perfect. Given this context, any ideas h…
And if that means scientists need to learn about version control, well... they should if they're writing code.
Re: Challenge to scientists: does your ten-year-old code still run?
#75Re: Challenge to scientists: does your ten-year-old code still run?
#76Earlier quoted context omitted.
I am in 100% agreement and would like to point out that many papers based on code don't even come with code bases, and if they do those code bases are not going to contain or be accompanied by any documentation whatsoever. This is frequently by design as many labs consider code to be IP and they don't want to share it because it gives them a leg up on producing more papers and the shared code won't yield an authorshi…
If published research is based on a code base, then surely the documentation and working code is equally important than the carefully written paper.
Re: Challenge to scientists: does your ten-year-old code still run?
#77The real key is incentives and there are two that standout to me:
- Incentive to get others to "star" and fork your code makes the coder compete to not only have an accurate result, but also prioritize producing code/notebooks that are digestible and instructive. That includes liberal commenting/markup, idiomatic syntax and patterns, diagnostic figures, and the use of modern and standard libraries.
- There is an incentive to move with the community on best practices for the libraries while still allowing experimental libraries. Traditionally, there is the incentive of inertia: e.g. "I always do my modelling in Lisp, and I won't change because then I'd be less productive". But with kaggle, to learn from the insights and advances of others, you need to have an ability to work with the developing common toolset.
In academia, if these incentives were given weight on par with publication and citation then we'd see the tools and practices fall into place.
Re: Challenge to scientists: does your ten-year-old code still run?
#78I think that GNU Guix is extremely well-suited to improve this situation.
Also, one could think this is an academic problem, in the sense of am otherwise unimportant niche problem. It really isn't, it is just like in many other topics that academics get confronted first with this issue. I am sure that in many medium or large companies there are some Visual Basic or Excel code bases which are important but could turn out extremely hard to reproduce. This issue will only get more burning with today's fast-moving ecosystems where backward-compatibility is more a moral ideal than an enforced requirement.
It is well known that ransomware can wipe-out businesses if critical business data is lost. But more and more businesses and organizations also have critical, and non-standard, software.
Re: Challenge to scientists: does your ten-year-old code still run?
#79I wrote a C++ implementation of the AMBER force field in 2003. Still have the source code with its original modification times. Let's see: /usr/bin/g++ -I/home/dek/sw/rh9/gsl-1.3/include -c -o NBEnergy.o NBEnergy.cpp NBEnergy.cpp: In member function ‘virtual double NBEnergy::Calculate(Coordinates&, std::vector )’: NBEnergy.cpp:20:68: error: no matching function for call to ‘find(std::vector ::const_iterator, std::vec…
Re: Challenge to scientists: does your ten-year-old code still run?
#80> Today, researchers can use Docker containers (see also ref. 7) and Conda virtual environments (see also ref. 8) to package computational environments for reuse. Docker is also flawed. You can perfectly reproduce it today but what about in 10 years. I can barely go back to our previous release for some dockerfiles.