Indeed, or as with the JuliaDiffEq universe common interface, an academic project could just something that adds your research algorithm as a dispatch to
solve(prob::AbstractODEProblem,MyAlg();kwargs), i.e. take in an ODE in a common generic form and have your special research algorithm spit out a solution. Then make organizations able to accommodate people extending function with their special algorithms, and have a goal for academic projects to be to have a repo with testing enabled that plugs into an ecosystem like this.
Of course, there’s many different ways to handle this, but I would like to see JuliaOpt (Optim.jl), JuliaML (I think it is), etc. go this direction as well. One of the things that drove me to Julia is that using two commands and putting your scripts in the right folder does this, so with barely any dev knowledge (and maybe a little help from your friendly neighborhood org) your “project” is now a tested, stable, and maintained (if there’s an active org with access, even if the original author leaves) part of the ecosystem.
Usually it’s pretty arrogant to tell people “no, you’ve been doing it all wrong before”, but in this case, it is correct that leaving random scripts that won’t work in 2 years around the web is not reproducible research, and it’s a shame if people don’t take the half hour (in Julia) to make it part of a maintained package for others to actually use.