I use a lot of great software written in Rust, it’s demonstrably a good vehicle for great software.
But too many of its fans are advocates, this can start to seem like an agenda. Don’t take engineering advice from people with an agenda.
I use a lot of great software written in Rust, it’s demonstrably a good vehicle for great software.
But too many of its fans are advocates, this can start to seem like an agenda. Don’t take engineering advice from people with an agenda.
I have been using C++, Python and Rust professionally, the developer experience is simply one order of magnitude better with Rust. The tooling is excellent, a sane compilation model brings you a lot, the type system is very helpful. Compared with C++, I measured x3 productivity on writing initial code on a project (sometimes C++ was the rewrite, sometimes Rust was, so not this kind of bias). Compounding maintenance, I expect it to tend to 1 order of magnitude in time.
Meanwhile, using Python can sometimes feel magical, but I have to maintain a library written in the language, and I can feel that it hasn't been optimized for this use case. It is terribly hard to keep backward compatibility, adding typing annotations is somewhat useful, but has terrible ergonomics, ensuring no regression is a pain that translates to endless suites of unit tests even for trivial matters ("be your own compiler" will never be a great idea IMO, although tooling like pylance does help a bit).
Meanwhile the rearguard is defending for new projects some kind of "No true Scotsman"ish modern C++ delusion, that I am still looking for and that moves like goalposts in every discussion I have with its proponents. My only explanation for the phenomenon is that it is fueled by hubris and sunk cost biases, because my experience with the modern idioms is that while they bring significant improvements, they are still very subpar compared to the expectations brought forth by a modern language, and memory safety related CVEs are still being written everyday in C++.
So, what should I do? It is true that, in more than 15 years of coding, Rust represents a revolution in programming in my eyes. Should I sit idly while others are missing on it and someone is wrong on the Internet?
I believe this is off-putting primarily due to the mental antibodies people must develop in an advertising-saturated culture. The death of enthusiasm.
I find this particularly compelling because Rust generally does not market itself towards novice developers. At least until very recently, I've seen Rust communities actively discourage novices from trying to learn Rust. Not that it's inherently a bad language to learn as one's first, but there just haven't been great resources for people to learn it if they don't already have some previous software experience. The net effect of this is that the enthusiasm you're seeing is coming from a much higher proportion than usual of people who've been in the industry awhile, and not from as many fresh college or bootcamp grads.
Pretty sure most experienced devs will say "use whatever works, there's some art out there written in erlang/JS/C++"
Case in point I think the most valid critique is that Rust is new and lacks a developed ecosystem. As an ML person myself it's not even useful for me to learn Rust unless I want to roll alot of my own stuff. So if your "experienced developers" are preaching about the best languages to promote, to learn as a hobby, etc.. they're not preaching about the best languages for prod unless it's for some specific application.
Also, fucking lmao, get over yourself, Rust isn't that hard to learn
And even if it were, being able to understand what is essentially wacky C++ doesn't mean you've "been in the industry awhile"
So to make sure I have this straight, based on your reply to the sub-thread, your objection is simply that I didn’t repeat the exact reasons why many believe Rust to be an improvement over languages that have come before it?
That wasn’t even the damn point of my reply, which was that given the enthusiasm you perceive as cultish behavior, here’s my take on the underlying reason.
Something tells me you’d have been even less happy had I launched into a lengthy breakdown of all the comparative advantages. It’s a no-win situation you’ve constructed. Congratulations, I guess?
> Pretty sure most experienced devs will say "use whatever works, there's some art out there written in erlang/JS/C++"
There’s art in Ruby and I love the language but it’s a terrible choice for long-term projects that grow to large team sizes. A language doesn’t have to completely replace all others to warrant enthusiasm. It doesn’t have to be better along every possible axis to warrant enthusiasm.
> Case in point I think the most valid critique is that Rust is new and lacks a developed ecosystem.
Ah yes, the favorite criticism of bitter and cynical engineers, right up to the moment they switch to “it’s old and crufty and the industry has moved on”. Oddly, none of these critiques ever seem to apply to the languages of one’s own choosing…
> As an ML person myself it's not even useful for me to learn Rust unless I want to roll alot of my own stuff.
Nobody anywhere is arguing any language is the best choice for all use-cases. Nobody anywhere is arguing for ML people to rewrite-it-in-rust. These are straw men of your own making.
> Also, fucking lmao, get over yourself, Rust isn't that hard to learn
More straw men! I literally never said this. Only that the community has made few if any attempts to promote it to complete novices, thus skewing the experience level of those who you do see promoting it (compared to popular languages that do promote themselves to novices).
I don’t think Rust is hard to learn, but I do think Rust’s ownership model is hard to truly appreciate if you haven’t spent at least some time in the trenches of languages with manually-managed memory.
> a lot of very experienced engineers encountering Rust, going "holy shit", and trying to preach about it from the rooftops
Preaching is like a religious thing. Why are people getting religious over a programming language?
People are obviously just making a living off of writing Rust and that's fine. I just find it so hilarious, dumbfounding and sad that people would stoop to such levels of dick-suckery over a programming language. Like, you all know it's going to replaced by Malbolge in 15 years, right?
My brother in christ it was a turn of phrase meant to be in the spirit of your original complaint.
You seem in need of an axe to grind (not an actual axe, this is another idiom). I’ll leave you to it.
See when I'm being an apologist I say shit like
"Python-like syntax but it compiles to assembly"
"You can mess with the AST like in LISP, to make everything differentiable"
"You can type the code for 10x speed, or leave it untyped for readability, multiple dispatch is basically magic"
You don't see me going around saying "Julia is objectively better"
And not only because I don't want to be a cultist but because it isn't and can't be true, something about no free lunch, something about Gödel incompleteness and expressivity, something something...
But if their "Java" software is actually 10% i686 Machine Code then that won't run on your ARM CPU, you will need to undertake an expensive port or move to Intel. So hence 100% Pure Java == Write Once / Run Anywhere actually delivered.
You can argue that Rust is more than one thing, but certainly not to same extent. Rust's culture is crucial to its "A language empowering everyone..." slogan, but it's not really separate from the programming language, in the way that the Java Virtual Machine doesn't need the Java programming language or the Java security model (now obsolete) or the Java browser plugin (remember that?) and so on.