Would an abandoned project I wrote 10 years ago still run? The code is probably fine, but getting it to actually run by linking up whatever libraries, sdks and environment correctly could be troublesome. Even a small pipeline a wrote a few weeks ago I had trouble re-running, because I forgot there was a manual step I had to do on the input file.
Expecting more rigid software practices of scientists than software engineers would be wrong. I don't think they should have to tangle with this, tools should aid them somehow.
If the same project had been packaged with Nix, it would probably still compile. People regularly checkout older versions of nixpkgs to get access to older package releases.
One of the key property is that the build system enforces all the build inputs to be declared. And the other one is to keep a cache of all the build inputs like sources because upstream repositories tend to disappear over time.
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.
Had a similar experience getting a contract updating a mass spectrometer control system because I had extensive high school experience in Turbo Pascal.
This. In the last years, conventional software engineering has in many cases experienced an explosion in complexity which will make very very difficult to maintain stuff in the long run. This only works because over 90% of startups go bust anyways, within a few years.
Expecting more rigid software practices of scientists than software engineers would be wrong. I don't think they should have to tangle with this, tools should aid them somehow.