estebank reads other people's mind, that's why he's so good at writing helpful compiler errors.
Context: in response to the Rust for Linux folks building and presenting an NVMe driver that's roughly at parity with the performance of the C driver.
Hi, I'm Matthew Wilcox, co-author of the NVMe spec and the troublemaker who said 'you need to do an NVMe driver and then I'll believe that Rust is ready for use in the kernel.' You have succeeded far beyond my expectations, both of you, all of you, thank you so much, you've done a fantastic job. I was not expecting to see these performance numbers, they are amazing.
[The] difficulty lies in an unfamiliarity with a memory model that challenges 50 years of running by the pool with scissors. There will always be a demand for programmers who know how memory works, and there will always be people who garbage collector go brrr.
— Guilty-Speaker7044 on reddit
To me, a defining property of Rust is that it never gives that "I'm not in control here, the language is" feeling.
Which is a very odd statement to my mind. Because Rust exercises great control over many things, thus stopping us writing code that mysteriously crashes, eats memory or produces erroneous results at random.
I think it's because the type system is "a relatable master", while the thought processes of the optimizer, when we're allowed to observe them having unexpected effects, are that of an eldritch abomination.
Speaking of languages, it's time to halt starting any new projects in C/C++ and use Rust for those scenarios where a non-GC language is required. For the sake of security and reliability. the industry should declare those languages as deprecated.
— Mark Russinovich, CTO of Microsoft Azure
it's not Perl
Linus Torvalds complimenting Rust, source: Next steps for Rust in the kernel [LWN.net]
Rust isn't that terrible
Also Torvalds, from the same quote as above. This is high praise indeed coming from Linus.
I would say the benefits I saw from the start were that you didn’t have to think about race conditions and memory corruption, and memory safety in general. You know, just writing correct and robust code from the start. So that was basically my first impression, but now I have also come to realize that there are many other aspects. You get just as big benefits from the side effects of that first aspect.
Semver has its philosophy, but a pragmatic approach to versioning is:
<upgrades may break API> . <downgrades may break API> . <fine either way>
people don’t realize that the reason their idea doesn’t work is not because the idea is wrong, it’s because the language (or, often, the compiler) is limited.
By Niko Matsakis in this blog post.
"But we can do it ourselves," say some hardcore kernel kings. "Look, some of this has been going 30 years without a problem." Indeed. But because an expert surgeon can whip out a spleen safely doesn't mean you can sell scalpels on eBay with "Instant Appendectomy" instruction leaflets. Rust reduces risk without compromising performance, which means more people can write better code faster. Who doesn't ache for this?
-- Rupert Goodwins @ Rust is eating into our systems, and it's a good thing • The Register
It’s not Rust that you are learning. It’s your goddamn program’s behavior. Rust just does not let you cut that corner.
BurntSushi is a super experienced programmer who always seems to know what’s right
Shepmaster occasionally pops up to keep things level, and provides definitive answers and edits to all stackoverflow questions
Epage is the ecosystem guy thanklessly maintaining the things that make the magic of cargo possible
Dtolnay is an AI written in rust with the sole purpose of improving rust.
/u/trevg_123 - here
Diagnostics like [
rustc's] are why writing Rust isn't just another "git gud" Dark Souls-style experience.
I like the "as long as...", very nicely worded.
There's a lot of weird debate about whether Rust in the kernel is useful or not... in my experience, it's way more useful than I could've ever imagined!
I went from 1st render to a stable desktop that can run run games, browsers, etc. in about two days of work on my driver (!!!)
All the concurrency bugs just vanish with Rust! Memory gets freed when it needs to be freed! Once you learn to make Rust work with you, I feel like it guides you into writing correct code, even beyond the language's safety promises. It's seriously magic!
There is absolutely no way I wouldn't have run into race conditions, UAFs, memory leaks, and all kinds of badness if I'd been writing this in C.
In Rust? Just some logic bugs and some core memory management issues. Once those were fixed, the rest of the driver just worked!!
Crater answers the age-old question: if a change breaks in the forest and no one is around to notice, is it really a breaking change?
No, says crater.
Not posted this week, but I found it quite funny.