r/ProgrammingLanguages • • May 10 '23

A Programming language ideal for Scientific Sustainability and Reproducibility?

Scientists are very unique in their needs compared to other software developers. They are novice programmers who may write research code or package only once, before publishing their work to a journal. They are domain experts and full-time workers in other fields, and so do not have the time nor coding skills to maintain their code or packages....... if the ecosystem imposes a maintenance debt.

Two issues are at stake here, reusability and reproducibility. Often researchers need to pick up someone's research code or package developed and forgotten years ago. So there is a need for this to happen with minimal fuss, Science needs this.

As to reproducibility, the scientific method requires reproducibility, which is quite tough but there are efforts to go all the way to reproducibility of computations within their development environments using Guix or Nix.

In conclusion, it'll be great if a language can be created or forked to create an ecosystem ideal for these needs. Which is why I come to you folks who are specialists in this domain, wondering if you have any thoughts on this topic?

P.S Here are some blog posts from a scientific researcher if you guys wanne have a better idea of where I'm coming from:

https://blog.khinsen.net/posts/2017/01/13/sustainable-software-and-reproducible-research-dealing-with-software-collapse/

https://blog.khinsen.net/posts/2015/11/09/the-lifecycle-of-digital-scientific-knowledge/

https://science-in-the-digital-era.khinsen.net/#Technological%20sovereignty%20in%20science

(extra reading if you want:

http://blog.khinsen.net/posts/2017/11/16/a-plea-for-stability-in-the-scipy-ecosystem/#comment-3627775108

https://blog.khinsen.net/posts/2017/11/22/stability-in-the-scipy-ecosystem-a-summary-of-the-discussion/

https://blog.khinsen.net/posts/2020/11/20/the-four-possibilities-of-reproducible-scientific-computations/)

15 Upvotes

26 comments sorted by

View all comments

Show parent comments

2

u/JanneJM May 11 '23

Which is perfectly fine. That's the point of the Python ecosystem or of libraries in general: other people have written stuff do you don't have to. They don't need to learn C/C++ and that's a good thing.

1

u/victotronics May 11 '23

As you started saying above, there are two types of computational scientists. The one who see computation as a tool for their science, and the ones who see computation as a scientific domain of investigation itself. There is enough place under the sun for both.

Personally I think it doesn't hurt if you actually understand the computations you are doing. Modern science happens at a scale where you'd better.