nikomatsakis
banner
nikomatsakis.com
nikomatsakis
@nikomatsakis.com
Weird Al meets Grace Hopper. Rustacean. He/him.

I work for @AWSCloud. Opinions on twitter and elsewhere are my own.
Pinned
Of all my blog posts, I'm proudest of this one:

smallcultfollowing.com/babysteps/bl...
baby steps
smallcultfollowing.com
Thanks! I wound up doing “add file to chat” and then removing the file so these options seem better =)
January 2, 2026 at 3:00 PM
I'm having an incomprehensible problem: I WANT to open VsCode's Chat UI, and I can't figure out how! When was the last time that the problem was not being able to figure out how to get an AI extension to appear, rather than the reverse??
January 1, 2026 at 10:56 AM
Second blog post from the Rust vision doc effort:

blog.rust-lang.org/2025/12/19/w...

Working through the data we gathered really helped sharpen my understanding here.
What do people love about Rust? | Rust Blog
Empowering everyone to build reliable and efficient software.
blog.rust-lang.org
December 19, 2025 at 10:02 PM
Reposted by nikomatsakis
Are you in a safety-critical industry? Using the Rust programming language (@rust-lang.org) or would like to? Make your voice heard when it comes to what you'd like to see for Rust Project Goals!

(survey link below)
December 9, 2025 at 7:10 PM
Why can't contributors to Rust treat me like Claude does? Claude always has nice things to say about my brilliant insights.
December 19, 2025 at 10:50 AM
OH: "weird and confusing compilation errors but not wrong runtime behavior" is the rust motto
December 5, 2025 at 12:10 PM
First of many blog posts about the Rust vision doc process: blog.rust-lang.org/2025/12/03/l...
Lessons learned from the Rust Vision Doc process | Rust Blog
Empowering everyone to build reliable and efficient software.
blog.rust-lang.org
December 4, 2025 at 1:01 AM
You’d think the beeping sound would alert you to that …
December 3, 2025 at 9:35 PM
December 3, 2025 at 12:22 PM
Here's the thing about "Find my Phone" alerts on iPhone. Until I have found the phone, I can't see it. Once I have found it, I don't want to see it. So why do they stay on there for an absurdly long time, despite my attempts to click them away? WHY?
December 3, 2025 at 12:21 PM
yeah, it seems like the message should really be something like "expectation failed: ..."
November 21, 2025 at 4:52 PM
New #rustlang blog post, about "move expressions", an idea that came up after my last post on ergonomic ref counting:

smallcultfollowing.com/babysteps/bl...
Move Expressions · baby steps
smallcultfollowing.com
November 21, 2025 at 4:34 PM
How did I go through the last 28 years without ever seeing the music video for "The World Around" by Daft Punk? Amazing. www.youtube.com/watch?v=K0HS...
Daft Punk - Around The World (Official Music Video Remastered)
YouTube video by Daft Punk
www.youtube.com
November 20, 2025 at 10:14 PM
Why? I at least usually want the panic to propagate, it’s kind of the whole point, to have actors that propagate the failure out to “infected” actors. The key is recovering :)
November 20, 2025 at 5:55 PM
Pretty cool that Rust is big enough to take down the internet. :D
November 20, 2025 at 12:00 AM
Actually I kind of dislike “or panic with”— the convention I find most readable is when people say eg foo.lock().expect(“not poisoned”) which conveys to me WHY it is ok. I think “or panic with” would push you to the opposite framing and I find that harder to think about.
November 19, 2025 at 3:37 PM
I agree “or panic” is better but my preference continues to be something like “assert_some”. I find that conveys the time when it is appropriate to use and connects it to the assert! macro (which can also panic…).
November 19, 2025 at 3:34 PM
Sadly no, not really. I’d love to see what you’ve done though!
November 18, 2025 at 10:51 AM
…hello prompt injection attacks :P
November 13, 2025 at 5:52 PM
I used to think that but it doesn’t work with the closure treatment. The whole point in some sense is to not require distinguishing “closure creation” and “closure invocation”. So if you just say it once, we need to automatic remove the other call… and then we can do it elsewhere.
November 12, 2025 at 11:58 AM
Another blog post about ergonomic ref counting in Rust:

smallcultfollowing.com/babysteps/bl...
Just call clone (or alias) · baby steps
smallcultfollowing.com
November 10, 2025 at 9:51 PM
But then again...maybe alias? · baby steps
smallcultfollowing.com
November 5, 2025 at 2:30 PM
Bikeshedding `Handle` and other follow-up thoughts · baby steps
smallcultfollowing.com
November 5, 2025 at 1:47 PM
Congratulations Michele! Nobody worked harder than you. I don't envy you the challenge of figuring out how to navigate school funding in our current political environment, but I'm glad it'll be you helping to do it.
November 5, 2025 at 11:02 AM