TWiR quote of the week

steveklabnik has spoken, the directions are clear:


fmtq: I'm ridiculously good at the borrow checker though
fmtq: in Rust.
bstrie: once you've mastered borrow checkers, you may move on to borrow chess

-- #rust-offtopic 22:42 PDT Dec 10 2016


scott: see, at christmas, if I unwrap() my present and I find that it's empty, I immediately have a panic attack and everyone gets really freaked out. if I expect() a present, at least I can send a stern message before I start panicking in the living room.
scott: sometimes I decide ahead of time that if I start having a panic attack, I'm just going to abort the whole christmas thing entirely and leave
scott: but it's easier to unwind if I don't abort and stick around

-- #rust-offtopic 22:03 PDT Dec 18 2016


If you've seen the if programming languages were people cartoon, you'll remember Rust being portrayed as a knight with three shields and a witty message. I like to think of error_chain as a squire loyal to the Rust knight.

-- 24 days of Rust - error_chain


Once again, “Keep calm and add more 'lifetimes” proves to be an effective approach :wink:

-- Karol Kuczmarski in Simulating exceptions in Rust with IIFE


I would argue that if the Rust project would have just one mission statement, it wouldn't be "create a safe systems programming language". It would be "move towards a world where safe systems programming is the norm".

— GolDDranks in reply to steveklabnik in this HN comments thread


This is the first version to have Rust code in it. The public API
remains unchanged. Apologies in advance to distros who will have to
adjust their build systems for Rust - it's like taking a one-time
vaccine; you'll be better off in the end for it.

-- Federico Mena Quintero announcing librsvg 2.41.0


One of the core tenets of C++ is "trust the programmer". One of the core tenets of Rust is "the programmer is a complete numpty; don't trust them unless they sign a contract in blood, in triplicate, promising they know what they're doing."
People make mistakes; Rust asks if you're sure you want to walk into the minefield, C++ enthusiastically runs ahead and blows all its limbs off while screaming "I don't know why you asked me to do this, but anything to make you happy!"

Quxxy on reddit in response to «is most of rust's features only due to a good compiler?»


On Reddit:

cars10k: Why is the newsletter always so late? I still did not get mine.
rustcvswvj: It first had to pass the borrow checker.


On Reddit:

Mh I'd like a sarcastic-dissapointed compiler like

use of moved value: 'val'. Again. There goes my hope you learned that by now. Serously. It's not that hard...
error: could not compile 'foo'. Maybe try a garbage-collected language?

From /u/ebrythil:


You should really read the whole conversation.

Manish reminisces on his blog:

Back in these days, we had none of this newfangled “stability” business. The compiler broke your code every two weeks. Of course, you wouldn’t know that because the compiler would usually crash before it could tell you that your code was broken! Sigils roamed the lands freely, and cargo was but a newborn child which was destined to eventually end the tyranny of Makefiles.


rustc uses llvm to share pocky without the use of hands

—randomly generated by the mcc_ebooks Twitter bot


I really hate the phrase "fighting". Calling it a fight doesn't do justice to the conversations you have with the borrow checker when you use Rust every day. You don't fight with the borrow checker, because there isn't a fight to win. It's far more elegant, more precise. It's fencing; you fence with the borrow checker, with ripostes and parries and well-aimed thrusts. And sometimes, you get to the end and you realize you lose anyway because the thing you were trying to do was fundamentally wrong. And it's okay, because it's just fencing, and you're a little wiser, a little better-honed, a little more practiced for your next bout

kaosjester on HN

1 Like

Clippy is for those of you who have become desensitized to the constant whining of the Rust compiler and need a higher dosage of whininess to be kept on their toes. Clippy is for those perfectionists amongst you who want to know every minute thing wrong with their code so that they can fix it. But really, Clippy is for everyone.


@tomaka in IRC (#rust around the same time as this post)

Here is an example of what I call a "complex type":
vulkano::command_buffer::AutoCommandBufferBuilder<(((((((((), vulkano::command_buffer::cmd::CmdBeginRenderPass<std::sync::Arc<vulkano::framebuffer::RenderPass<Boxvulkano::framebuffer::RenderPassDesc>>, std::sync::Arc<vulkano::framebuffer::Framebuffer<std::sync::Arc<vulkano::framebuffer::RenderPassmain::scope::CustomRenderPassDesc>, (std::sync::Arcvulkano::image::SwapchainImage,)>>>), vulkano::command_buffer::cmd::CmdBindVertexBuffers<std::sync::Arc<vulkano::buffer::CpuAccessibleBuffer<[main::Vertex]>>>), vulkano::command_buffer::cmd::CmdPushConstants<(), std::sync::Arc<vulkano::pipeline::GraphicsPipeline<vulkano::pipeline::vertex::SingleBufferDefinitionmain::Vertex, vulkano::descriptor::pipeline_layout::PipelineLayout<vulkano::descriptor::pipeline_layout::PipelineLayoutDescUnion<main::vs::Layout, main::fs::Layout>>, std::sync::Arc<vulkano::framebuffer::RenderPassmain::scope::CustomRenderPassDesc>>>>), vulkano::command_buffer::cmd::CmdBindDescriptorSets<(), std::sync::Arc<vulkano::pipeline::GraphicsPipeline<vulkano::pipeline::vertex::SingleBufferDefinitionmain::Vertex, vulkano::descriptor::pipeline_layout::PipelineLayout<vulkano::descriptor::pipeline_layout::PipelineLayoutDescUnion<main::vs::Layout, main::fs::Layout>>, std::sync::Arc<vulkano::framebuffer::RenderPassmain::scope::CustomRenderPassDesc>>>>), vulkano::command_buffer::cmd::CmdSetState),vulkano::command_buffer::cmd::CmdBindPipeline<std::sync::Arc<vulkano::pipeline::GraphicsPipeline<vulkano::pipeline::vertex::SingleBufferDefinitionmain::Vertex, vulkano::descriptor::pipeline_layout::PipelineLayout<vulkano::descriptor::pipeline_layout::PipelineLayoutDescUnion<main::vs::Layout, main::fs::Layout>>, std::sync::Arc<vulkano::framebuffer::RenderPassmain::scope::CustomRenderPassDesc>>>>), vulkano::command_buffer::cmd::CmdDrawRaw), ulkano::command_buffer::cmd::CmdEndRenderPass)>
So good luck using a type alias


Aaaaaaaaaaaaaaand... compiler error.




I really like the comments from people who visit /r/rust on reddit thinking it's a videogame's subreddit. I found this one extremely funny:

For a second i tought i was on the subreddit of the videogame Rust 
and i was so confused about all this.

I was like damn, you guys really go deep into the details of the game programming
and stuff but what about gameplay and balance, i want something concrete.

I think i need to go to bed.