What do zig and julia share? They are both great *niche* languages that are not supported in Debian and Guix. That is a dead end. The late Joe Armstrong argued that compilers should be easy to support. And his Erlang is still doing fine!
Currently on my short list for performance code programming are nim, rust (ugh) and prescheme. Nim and prescheme transpile to C. So I can drop down to C when required and mix the three. I like that. Rust is just its own nightmare, but I probably need it for some shared work and it beats C++. And then Guile for glue. Chicken is another possibility as it transpiles to C though it has a GC. A case of play chicken?
A transpiler to C is interesting when you target HPC systems. They often have outdated software - but optimizing C compilers will always be there! RISC-V targets may benefit too.
Peter's Nim C wrapper is pretty awesome too. https://peterme.net/wrapping-c-libraries-in-nim.html
@pjotrprins What do you mean by julia is “not supported in Debian and Guix”?
Well, if you mean: not enough love is put in manintaining Julia, then yes I agree. Else, could you explain more?
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/julia.scm
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/julia-xyz.scm
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/julia-jll.scm
@pjotrprins @zimoun Working on Julia (partly for Pjotr) led me to question more about how much a system package manager should also package language packages. I actually have 6 stashed changes in my guix.git for updates to julia, all ending in either marginal gains or unable to build julia packages which depend on other packages.
Ultimately, without the FHS, it's near impossible to download and use pre-compiled libraries from a language package manager, so we're stuck for now.
@pjotrprins I still read your explanations as “missing love”.
For instance, this patch is waiting: https://issues.guix.gnu.org/62202
It brings an importer which would easy many painful tasks for upgrading.
About Debian, I don’t remember (or find today) some rationale but I remember that some maintainers quit the whole Debian project for reasons unrelated to Julia; my understanding’s that Debian dropped Julia because the lack of maintainers (= missing love).
@pjotrprins I disagree with your claim: Julia is “not supported in Guix”. Julia is supported by Guix! :-)
And I agree to say that Julia upstream acts as a bad actor. They are making harder and harder to build without relying on their stuff. Worse, when people send patches to them fixing downstream annoyance, they often answer “not interested, please use the binaries we provide!”.
@zimoun if we run a 2 year old binary I don't call that support. Debian dropped it about that time too. I think Debian is the litmus test - if they can't do it it means the programming language is essentially obsolete. Goodbye Julia and goodby Zig. May you fare well.
@pjotrprins Again, that’s incorrect. See https://issues.guix.gnu.org/73197 And some recent versions are also elsewhere in some channels. Why this patch is not yet merged? Because it lacks attention and love, IMHO.
Well, I understand that you don’t want to put effort in Julia (or Zig) – even, do I? But your own conclusions don’t mean “Julia isn’t supported by Guix”.
@zimoun Mind: I am not complaining. I know Guix is open for anyone contributing. Same for Debian.