We've been holding a Twitter Space weekly on Mondays at 5p for about an hour. Even though it's not (yet?) a feature of Twitter Spaces, we have been recording them all; here is the recording for our Twitter Space for July 18th, 2022.
In addition to Bryan Cantrill and Adam Leventhal, our special guests were Steve Klabnik and Luqman Aden. Other speakers included Dan Cross, Tim McNamara, and YY. (Did we miss your name and/or get it wrong? Drop a PR!)
Some of the topics we hit on, in the order that we hit them:
- @0:27
let_chains
are stable in Rust 1.64- Adam's tweet
- The stabilization PR, with the full saga leading up to stabilization
- As Steve mentions, the feature dates all the way back to 2017 and extends the Swift-inspired
if let
expressions Rust has had for a while - Some Rust features, like
async
functions in traits, are huge rabbit holes - Discussion about Rust's commitment to stability and how it's enforced with things like
crater
- As an example of the process leading to burnout in programming language communities: Guido stepping down as BDFL after PEP 572 (Assignment Expressions, "the walrus operator")
- Discussion about Ruby also taking stability seriously:
flip-flop
s weren't removed in Ruby 2.0 in part because of this pretty incredible snippet from Yusuke Endoh - Quines and variations, Yusuke Endoh's
Qlobe
(reproduced here), their infamousquine-relay
, and their other projects - The G-Portugol programming language
- The unstable features mechanism in Rust ("first class support for experimental features") and how this allows for user experimentation
- Exclusive range patterns in Rust and some of their perils, specifically in
tock
- Contrasting the Rust unstable feature mechanism with Haskell language pragmas: the former requires a nightly compiler to use, the latter does not
- @18:20 Discussion about the Rust process; going from RFC to stable Rust
- @24.30
hubris's use of nightly Rust
hubris
is onnightly
Rust but with an allow list of features- Naked functions in Rust (tracking issue), Destructuring assignments,
#[cmse_nonsecure_entry]
- Talking about LWN-style reports and curation as a way to lessen the pain of using Zulip style chat platforms for discussion
- LWN is hiring, looking for someone to keep up with Rust development, among other things
- @29:30
Non-lexical lifetimes
- Importance of RFCs in understanding the origin of things in Rust - Value to working Rust programmers goes down over time
- Non-lexical lifetimes as a dividing point in the evolution of Rust
- Scope is core to a Rust programmer's mental model - but programmers don't think about them in a lexical sense
- NLL prevents writing spurious scopes to get past the compiler
- @36:30
Good error messaging and focus on the programmer
- async/await providing good error messages
- Adam's blog entry on his initial experience with Rust
- async Rust
- imperfect compiler suggestions sometimes pointing you to a wrong path
- The compiler asks you questions that need to be asked
- near-vertical learning curve, gut punch to the ego
- @48:20
Crossing the chasm
- Business book - Lots of things die trying to get from the initial group of users to the laggards
- When did Rust cross the chasm? MVP of async / await dropping? Used in many cases for network systems
- Adam loves ANTLR
- removal of green threads
- @1:06:15
Small features that have been added for QoL
- inline asm
- const generics
- Clippy the Rust linter
- Rust Analyzer
- Programming in Rust making one a better C programmer
- Captured identifiers
- no longer needing to use "extern crate" in Rust 2018
- affinity between the way Rust views the world and the way the Dutch build roads (safety is part of the design)
- @1:31:00
Putting words on dead trees
- crossing the chasm moment - release of The Rust Programming Language and Programming Rust as physical books.
- Rust for Rustaceans
- Rust programmers go through stages: fighting the borrow checker, then crates are cool - use them everywhere, then a year later you can start to right idiomatic code
- small QoL feature: cargo add
- Also: links in rustdoc
If we got something wrong or missed something, please file a PR! Our next Twitter space will likely be on Monday at 5p Pacific Time; stay tuned to our Twitter feeds for details. We'd love to have you join us, as we always love to hear from new speakers!