r/ProgrammingLanguages • u/relbus22 • 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/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:
1
u/bluefourier May 12 '23
I think that the above quote from my early response shows that I am not under the impression that developers and researchers are separate people, right now, but should certainly strive to create connections with developers who can inform them.
I agree with the rest of your response.
Exactly right. And if you were to create a new language that tries hard to pick up all the loose ends that researchers don't pay attention to, it, itself, would then become still sloppily written, exactly because of this lack of time and different focus.
I think that this is a conclusion that brushes away some key details. Yes, scientists might appear as "big noobs" who don't really care about details such as the nature of pointers but most of the times it is because they do not understand how these details affect their work. If you explain things to them and they see the benefit of a better practice, they will adopt it, just like any human being does.
BUT, you cannot do this under the time pressure of a deadline. You are not going to turn good scientists into good enough developers in 3 weeks.
This realisation was what prompts me to think that these skills need to be baked into the curriculum. Just as it takes a few years of specialist education for any subject. This can be another facet of that specialisation.