unsafeRust is all about flirting with UB but never giving in.
Once you realize that the Rust borrow checker is actually preventing you from writing bug after bug, you start to wonder how we ever got this far without it.
Empowering is the perfect word to describe Rust in 2020. What used to be a rough adventure with many pitfalls has turned into something beautiful, something that can lift your spirit. At least, that’s what it did for me.
Mathias Lafeldt in Giving Rust Another Shot in 2020 | Mathias Lafeldt
If you've never tried Rust, imagine pair programming alongside a nearly-omniscient but narrowly-focused perfectionist.
I'll admit, I've sat at my desk with a huge smile thinking "I couldn't have built this without lifetimes."
The amount of careful thought I've seen put into [Rust's] design – crafting async/await to work in no_std environments, or the new inline assembly syntax – has produced a language that is not only better than what I could have designed, it's better among axes I was not even aware existed prior to reading the Rust RFCs.
-- First impressions of Rust
This is not a commentary on the actual issue that triggered this response. Rather, I just liked the response.
Whoop whoop, this feels like being knighted, and all the work totally paid off. Iteration after iteration after iteration, and it really was just Rust pushing me into doing "what's right", which also happens to be fast as a freebie.
-- Sebastian Thiel in [performance] beating git in `git verify-pack` ✅ 🚀 · Issue #1 · Byron/gitoxide · GitHub
There is a more technical term for "wrong", too - maintaining invariants is maintaining "soundness". Code that breaks invariants is called "unsound".
You're smarter than Rust - and you may need to rethink your design a bit, so it's possible to tell the compiler about it.
And when you do, you'll discover mistakes you never knew you could make.
“macros are for when you run out of language”. If you still have language left—and Rust gives you a lot of language—use the language first.
Not only is our new Rust code simpler and cross-platform, but it’s faster to boot!
Programming's always been frustrating. Rust just makes the frustrations more likely to happen to you, and not your users.
/u/legowerewolf pointedly summarizes Rust's guiding principles in Reddit Discussion "Frustrated? It's not you, it's Rust"
Regarding alternatives to inheritance:
Man, I love it when the #RIIR (“Rewrite It In Rust”)
virusmania spreads like wildfire
rggr on lobste.rs gitoxide: pure rust implementation of git | Lobsters
Rust is a very different beast for me. It is a *much* bigger and *much* more capable language. However, I've found that it is, in many ways, a lot more restrictive in how you can approach problems. I frequently find myself being perplexed at how to eloquently solve a problem. When I discover the idiomatic way of doing it I'm usually both blown away by the brilliance of it and a bit disheartened by how difficult it would be to come up with that solution by myself :-).
-- /u/mikekchar @ Reddit - Dive into anything
"With great power comes difficult to read extremely-generic signatures.", as they say.
-- /u/Lokathor @ Reddit - Dive into anything