Julia stability vs Rust for Scientific Computing

I’m a physicist, and I have been using Julia for research in quantum information (specifically Bell nonlocality and quantum cryptography) for a couple of years. Before I used mostly MATLAB and Python, but the performance of those languages was not good enough to solve some of the problems I needed, so I found myself occasionally writing C/C++. Which I abhor, so it was a huge relief to get really good performance in Julia (sometimes better than what I managed with C++) in a language that is a pleasure to write.

As for the talk about instability, the true part is a consequence of Julia’s lack of formal interfaces combined with generic code. For example, some package can define matrices with units, and you can try to use another package to take a Schur decomposition of such a matrix. Whether that’s going to work is impossible to know. You might get the correct result, an error, or a silently incorrect result.

I don’t think that’s a real problem, because it only happens when you mix funny packages like this. In other programming languages this is something you cannot even try. And mixing funny packages does work often enough that it’s a real source of power of Julia, the wealth of packages that you can use is unparalleled.

That said, Julia does have real problems, like the closure capture bug, which I hope will be fixed one day.

With Rust you get formal interfaces, you can be much more certain about whether some combination of crates will work. For me it’s not worth it, because I find writing Rust to be orders of magnitude slower than writing Julia - both because of the language itself and because of the lack of packages I need.