Discussion from 2 years ago: <a href="https://news.ycombinator.com/item?id=25270762" rel="nofollow">https://news.ycombinator.com/item?id=25270762</a><p>It's a weird article. It seems more like a Rust sales pitch than anything.
Yeah no, "scientists", this wonderful general category that means nothing and everything, in general, are not turning to Rust.<p>Programming is a niche. Rust is a, albeit amazing and gaining traction at a fast pace, niche in this niche.<p>99% of mathematicians, physicists and biologists I have worked with have not even tried programming yet. And if they do, they will start with the stuff their friends are already using: python, fortran, etc.<p>Hell, 99% of the dev have not heard of rust yet. I go from companies to companies, every time I talk about rust, I have to explain what it is.<p>It's not even living in a bubble if you think that, it's living in an bubble from another dimension.<p>Having generalization from anecdotal evidence in nature.com is kinda ironic if you think about it.
>>“No other mainstream languages really have these concepts, and they’re really core to understanding a lot of how you have to write code in Rust,” Nichols says.<p>I tried Rust, but I am using SPARK2014/Ada for my needs. Easier to learn and has the formal methods/software integrity checks and other niceties. I started learning SPARK2014 while reading the book, "Building High Integrity Applications with SPARK". It was used by the CubeSat lab in Vermont [1], which the book ties in nicely. I can see programmers flocking to Rust, but scientists are not typically computer scientists, and mainstream shouldn't be a highly-weighted metric. I find Rust a lot more heavy than SPARK/Ada. I've tried Julia too, but you can write systems level code in SPARK/Ada too. The adacore site has a lot of great projects and articles on embedded software, drone low-level code rewrite in SPARK, etc.<p>The partnership between AdaCore and Ferrous Systems is very exciting [2]. I hope to be able to stay with SPARK and gradually learn Rust with this partnership when Rust has a bit more under its belt with real world embedded, high-integrity software like Ada's legacy.<p>[1] <a href="http://cubesatlab.org/" rel="nofollow">http://cubesatlab.org/</a><p>[2] <a href="https://ferrous-systems.com/blog/ferrous-systems-adacore-joining-forces/" rel="nofollow">https://ferrous-systems.com/blog/ferrous-systems-adacore-joi...</a>
Are they? I worked with bioinformaticians and now physicists and rust has never come up.<p>> Köster, now at the University of Duisburg-Essen in Germany, was looking for a language that offered the “expressiveness” of Python but the speed of languages such as C and C++. In other words, “a high-performance language that is still, let’s say, ergonomic to use”, he explains. What he found was Rust.<p>He must not have looked very far. There are much better options if you're looking for the expressiveness of Python. Personally I'm very fond of Nim.
Good question then: how is the "occasianal's programmer" experience compare between Rust and C++?<p>I used to write games in C++ as a teenager, and using it daily was fine. Now I find, every time I try to write something in it, it's a massive pain, as I forget the myriad of tiny rules, the very specific ways to write types etc. And that's before I even think about dependency management.<p>Is Rust <i>substantially</i> better at this? When I read frustrations about Rust, it seems to be mostly about the Borrow Checker... does that affect "pedestrian" code, like "take this 4-dimensional array and munge it with an arcane for-loop"? Or, here's a basic immutable class with some fields and some methods, make it available in Python?<p>I'm liking the look of Nim because it is concise, safe and fast-ish, so a good companion to Python. I dislike C++ as that companion because, even though once you've written your code, it integrates very well with Python, it's a lot of pain to get there. Where would Rust fit in this picture?
I remember many years ago people would start building a scientific ecosystem around Go, but where are all the scientists/engineers using Go now? Eventually people would also realize that Rust is just a bad language choice for building some things, like making games, scientific computing, etc. I expect all this effort to become abandoned. Not everyone wants to invest learning hard to explain memory management concepts and especially engineers are just not interested. For them programming is a tool, not something to be sucked in. I believe Nim on the other hand is a much more realistic choice, with a vibrant scientific community and many fast, high quality and easy to use libraries.
<p><pre><code> >But for many Rustaceans, the human element is equally compelling. Hauck, a member of the LGBT+ community, says that Rust users have gone out of their way to make her feel welcome.
</code></pre>
Because, when interacting with a programming language community, it's so vitally important to know that they accept what you choose to do with your genitals, in your spare time.
I know someone working on a materials science PhD. He might have to learn python. I could more easily recommend Rust if there were, say, different flavors of Rust, that allow learning the "hard stuff" in stages, but starting with one that uses garbage collection by default. Then, instead of learning python and maybe having to re-learn Rust later--I realize this is less likely, but still--to save time overall, he could learn the "intro level" of Rust now, and expand his Rust skills as need arises, without ever having to restart from scratch to learn a new language, new libraries, etc.<p>In other words, a step-by-step developer growth process from simple to hard, maybe 2-4 levels, governed by a Cargo.toml setting probably (comparable to a compiler switch), and you never have to throw away what you already learned. Like maybe "learn once, do anything".<p>(Yes, compatibility with peer group is probably a larger factor. But as an option for some where it fits.)
A couple of years ago when checking out Rust for scientific work I started looking for familiar ground, e.g. Jupyter notebook support. I was happy to find google/evcxr's Jupyter kernel [1] and started writing an early access book on Rust for data analysis [2].<p>I still check _Are we learning yet_ [3] to see their recommendation on the state of ML in Rust. It still lists "the ecosystem isn't very complete yet.", which is how I felt at the time!<p>[1] <a href="https://github.com/google/evcxr/tree/main/evcxr_jupyter" rel="nofollow">https://github.com/google/evcxr/tree/main/evcxr_jupyter</a><p>[2] <a href="https://datacrayon.com/shop/product/data-analysis-with-rust-notebooks/" rel="nofollow">https://datacrayon.com/shop/product/data-analysis-with-rust-...</a><p>[3] <a href="https://www.arewelearningyet.com" rel="nofollow">https://www.arewelearningyet.com</a>
This article describes pretty much exactly why I turned to Rust for my scientific computing - high speed, far easier to use than C or C++, less bug prone.
I worked as a Research Software Engineer, and while I saw the topic come up as a 'that's cool', I never met anyone using it. People writing HPC code are still overwhelmingly using C++ or Fortran, and everyone else is using Python or R. I didn't even come across more than about 2 people in my institution using Julia, despite the hype that it gets.
Python and R are the two go to modern programming languages for number crunching.
Fortran still has a lot of sway. C has a little.<p>Rust is totally irrelevent in this context.