Engineering is not about "not doing mistakes". Engineering is about designing systems that ensure fewer mistakes occur .
Rust is such a system.
It took me sometime to let go and embrace getting things working before optimizing. It was a major breakthrough on that journey when I realized that ALL my python variables are
Rc<RefCell<_>>
, so any chance I had to make a variable that was less complicated than that was already a big optimization. If 1/10 Rust variables had to be that complicated it would not feel good, but it would already be 90% better. So if 1/50 make the code ezere to read and maintain then do it!
-- Eh2406 @ Reddit - Dive into anything
I guess it's worth mentioning that Reddit's markdown parser is written in Rust, based on comrak, and Reddit is running a bunch of Rust every single page request. By CPU cycles, Reddit has got to be one of the biggest users of Rust there is.
-- brson @ Reddit - Dive into anything
@mirashii
on the community discord:
Think of "it works" when you have UB like this: You've flipped a coin 1 time and it's come up heads and you've concluded it's never tails.
What people do with Rust, specifically, is they tell you that once you "figure out" the borrow checker, it's never a problem again and your code design just automatically "improves" (by what metric?). But that's not really true. The borrow checker definitely hamstrings certain things. It's okay to admit that.
ragnese on reddit
@nitred on Hacker News:
As a Python programmer with limited experience with compiled languages, Rust code was more intimidating to read or look at than C++, Java or Go. After only an hour, I am overwhelmed by the sheer beauty and mature design of this language - it almost reads like Python or as well as any compiled language can. I cannot believe that I am smitten by Rust within an hour. Its features seem, obvious.
From @Yandros , a funny meme challenging your understanding of Rust.
-> Passing self to callback returning future vs lifetimes - #5 by Yandros
The config server is currently the most stable, reliable, well-tested and idempotent part of the entire system! I have not had a single hiccup or performance issue out of Calloop + ZMQ + signals + etc. and 99% of my dev time is on the actual config logic, not event loop stuff.
Rust favours security over convenience. Rust does not want you to make silly little mistakes than can waste so much of your time debugging, which in the end makes it more convenient.
Maybe:
»Incidentally, this leads to the following also being valid code:
fn foo() -> i32 {
return return return return return!!!!!!!!!!111;
}
«
from Reddit user PatchMixolydic which cited it from Reddit user pczarn.
Congratulations, you have confused the Discourse Rust parser that snippet is highlighted incorrectly.
Well, it's just one space apart from being treated correctly:
fn foo() -> i32 {
return return return return return !!!!!!!!!!111;
}
Incoming proposal to rename return
keyword developers
Why do I use the letter ‘o’ for my generic closure param name? [...] I recently realized that since Rust uses pipes to enclose a param block, using ‘o’ makes the block look like a TIE fighter. I am not a terribly serious person.
Rust is Fast, Mutable ML with a compiler that gives you grief.
@sycration on Discord
(The rest of the quote is really good too, go read it )
Describing Rust as a systems programming language in 2021 is like describing Microsoft as Windows or Google as search. Yes, Rust is equipped for systems programming, but its applicability is much wider.
I'm starting to think of the compiler and borrow checker as training wheels for writing correct code, which I'm trying to end up relying on less and less. While they can definitely feel like a wall, you just have to find the doors.