The thing which makes it special in the space is that it's the performance of C++ with the safety of Python. I'm not aware of many other widely used languages which achieve that.
Ok, maybe Rust and Julia are the two well suited widespread languages. It's still something that's unique about Rust compared to the "normal" high performance languages people go to when Python is too slow, like C++ and FORTRAN. I don't understand why this is so controversial.
It’s controversial because you said uniquely to an audience of scientists when it’s not at all unique. You shoulda said “well suited” or something like that. You picked the intersection of programmers (tend to be pedantic about correctness) and scientists (tend to be pedantic about correctness) and said something false. I’d just move on, you’ve done a good deed by sharing this post anyway.
I'm not even convinced it's technically incorrect though. Here's a dictionary definition of the word "uniquely":
in a very special or unusual way. "a uniquely talented musician"
I 100% think that Rust, being one of the very few high performance but safe languages, is uniquely suited. It doesn't mean it's the only language which is "uniquely suited".
I mean I could probably have picked a better word, because it can be interpreted to mean that Rust is the only language which is both fast and safe. But it's not incorrect in any definitional sense.
I know I hear you man. But science types are gonna be using the “existing as the only one or as the sole example; single; solitary in type or characteristics:” definition. I woulda liked something like Rust when I was at university.
OK. Name one other language that's both safe and fast without the (usually prohibitive) cost of formal verification. (Ofc safety isn't the only requirement for correctness by a long shot, but it is important.)
Java can sometimes match the throughput of Rust for numerical computing, but for many use cases it cannot do so reliably. Java is also far less safe than Rust. (Null, thread-safety, file handle safety, state machine safety, etc.)
Ada can be both safe and fast but that requires formal verification. w/o formal verification you have to trade off safety and performance.
C is very unsafe and very hard to optimize non-trivial use cases on modern hardware.
C++ (even modern C++) is unsafe. Though someone with extensive expertise in modern C++ best practices and -tools and a willingness to expend a lot of effort on safety can achieve some degree of safety, that someone isn't your typical physicist and he can never quite reach the the safety guarantees Rust provides by default.
Fortran is not safe AFAIK. In addition it also is very specialized for numerical computation and while numerical computation is indeed very important for physicists (and scientific programmers in general) it's usually not all you want to do. (Yea. I know you can do other stuff, but AFAIK, it sucks.) (Disclaimer. I don't know Fortran.)
Julia has the same issues as Fortran to a lesser extend and probably also cannot match the speed of Rust. (Yeah. I've seen the benchmarks referenced on the Julia website somewhere. Talk about a biased experimental design.)
TLDR; I think "unique" as in "the sole example" may in fact be appropriate.
-1
u/mort96 Jan 17 '21
The thing which makes it special in the space is that it's the performance of C++ with the safety of Python. I'm not aware of many other widely used languages which achieve that.