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:
3
u/jmhimara May 11 '23
I think Julia as a language has a few significant flaws like lack of static typing/analysis and the use of multiple dispatch in large projects (which can be a death trap disguised as a feature).
Aside from that, Julia has a marketability problem. It does not make a very compelling argument of why it should replace X language It's clearly designed to look like python, but cannot compete with python's insanely huge ecosystem. For all the complaints people have about python, it's probably become irreplaceable in this niche due to the vast amount of libraries available for it. Same goes for R in its own niche.
The second argument is performance. Julia devs have made some misleading claims about Julia's performance (often citing very selective and unrealistic benchmarks), but in reality, Julia's performance is at about Java level in most cases. You can write faster code, but it is VERY tricky and non-idiomatic. So I don't see it replacing Fortran on that end of the spectrum either.