A show about the Rust programming language and the people who use it.
Similar Podcasts
The Cynical Developer
A UK based Technology and Software Developer Podcast that helps you to improve your development knowledge and career,
through explaining the latest and greatest in development technology and providing you with what you need to succeed as a developer.
Developer Voices
Discover the future of software from the people making it happen.Listen to some of the smartest developers we know talk about what they're working on, how they're trying to move the industry forward, and what you can learn from it. You might find the solution to your next architectural headache, pick up a new programming language, or just hear some good war stories from the frontline of technology.Join your host Kris Jenkins as we try to figure out what tomorrow's computing will look like the best way we know how - by listening directly to the developers' voices.
Algorithms + Data Structures = Programs
The Algorithms + Data Structures = Programs Podcast (aka ADSP: The Podcast) is an informal podcast inspired by Magic Read Along. We plan to talk about whatever we feel like - algorithms, data structures, programming languages, latest news in tech and more. Feel free to follow us on Twitter at @adspthepodcast.
e017: Point me where I need to go
A deep dive on references and pointers in Rust. Notes By listener request, today we look at the syntax and semantics of referencing and dereferencing and the corresponding & and * operators. As was the case with e016, the code samples have little to say in their documentation; reading the code will be necessary for seeing the ideas. Links “Inside the Fastest Font Renderer in the World” The Rust Platform: original blog post Rust internals discussion Reddit discussion Hacker News discussion follow-up Reddit discussion Cargo vendoring support in nightly MIR on by default in nightly References and dereferencing: The Rust Programming Language: References and Borrowing Deref coercions Rust by Example: Flow Control: pointers/ref The Rust Reference: Unary Operator Expressions Pointer Types Sponsors Aleksey Pirogov Cameron Mochrie Cass Costello Chris Palmer Daniel Collin Derek Morr Doug Reeves Eric Fulmer Hamza Sheikh Jakub “Limeth” Hlusička Jared Smith Keith Gray Lachlan Collins Leif Arne Storset Luca Schmid Micael Bergeron Pascal Hertleif Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo Raph Levien reddraggone9 Ryan Ollos Steven Murawski Vesa Kaihlavirta William Roe (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
e016: RefCells and code smells
Digging deeper on smart pointers and mutability with Cell and RefCell. Notes What are the Cell and RefCell types, and when should we use them? Today, we follow up both the detailed discussion of smart pointers in e015 and the closely related discussion in Interview 2 with Raph Levien, and look at two types you need to have a good idea how to deal with if you want to use these smart pointer types more ergonomically—that is, how to use them without feeling like you’re beating your head against a wall! Links Rust 1.10 blog post full release notes cdylib RFC: text | discussion implementation rustup 0.3.0 release Integer32 (Carol Nichols’ and Jake Goulding’s new Rust consultancy) announcement blog post reddit discussion IntelliJ Rust reddit discussion Tango: source | talk Cell and RefCell: Cell Types in The Rust Programming Language Standard library: std::cell module docs (detailed explanation, complementary to the book) Cell<T> docs (at std::cell::Cell) RefCell<T> docs (at stc::cell::RefCell) Sponsors Aleksey Pirogov Chris Palmer Daniel Collin Derek Morr Doug Reeves Eric Fulmer Hamza Sheikh Jakub “Limeth” Hlusička Keith Gray Lachlan Collins Leif Arne Storset Luca Schmid Micael Bergeron Michael Clayton Pascal Hertleif Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo Raph Levien reddraggone9 Ryan Ollos Vesa Kaihlavirta William Roe (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
Interview 2::Part 2 – Raph Levien
Raph Levien on Rust’s current strengths and places it can improve Notes Chris chats with Raph Levien about what inspired him to build a text editor, as well as about where the rough edges in the Rust development story are today, and how we might improve them going forward. Links Rust/Ruby bridge: Helix blog post GitHub Rust Bridge project Ropes original paper Rust implementation C++ implementation Yehuda Katz on Code Newbie Creating Ember JS - Part I Creating Ember JS - Part II Rust and Swift (xi): Hopes for the next generation of systems programming. Sponsors Aleksey Pirogov Chris Palmer Daniel Collin Derek Morr Doug Reeves Hamza Sheikh Keith Gray Lachlan Collins Leif Arne Storset Luca Schmid Micael Bergeron Pascal Hertleif Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo Raph Levien reddraggone9 Ryan Ollos Vesa Kaihlavirta William Roe (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
Interview 2::Part 1 – Raph Levien
Raph Levien on using Rust to build the Xi editor Notes Chris chats with Raph Levien about his background in software development, what attracted him to Rust, and how he’s using Rust to build the Xi Editor, a project which aims to be the fastest text editor out there, with native user interfaces and a Rust text engine. Links Past work: GIMP GTK GhostScript Google Web Fonts Current projects: font-rs pulldown-cmark Xi Editor fuzz testing sanitizers FreeType HarfBuzz ICU Ropes Wikipedia summary original paper “log n operation”, or O(log n) Big O notation Rust: [Arc] [RefCell] [Borrow] [AsRef] Rust libraries [Crossbeam] [Rayon] Unix philosophy The Unix philosophy emphasizes building simple, short, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators. The Unix philosophy favors composability as opposed to monolithic design. Sponsors Aleksey Pirogov Chris Palmer Daniel Collin Derek Morr Doug Reeves Hamza Sheikh Lachlan Collins Leif Arne Storset Luca Schmid Micael Bergeron Pascal Hertleif Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo Raph Levien reddraggone9 Ryan Ollos Vesa Kaihlavirta William Roe (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
e015: Not dumb pointers
Box, String, Vec, Rc, and Arc have this in common: they’re not dumb. This episode, we take a close look at smart pointer types—from a few we’ve already talked about, like Box, Vec, and String, to some new ones, like Rc and Arc. What smart pointers are, and what makes them ‘smart’. Why we want or need smart pointers. A bit about Box. A lot more about Rc and Arc. Links RustConf Rust Belt Rust Conference sessions Rusty Radio feed Rust Exercism track All exercism language tracks Sponsors Aleksey Pirogov Chris Palmer Daniel Collin Derek Morr Doug Reeves Hamza Sheikh Lachlan Collins Leif Arne Storset Luca Schmid Micael Bergeron Pascal Hertleif Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo Raph Levien reddraggone9 Ryan Ollos Vesa Kaihlavirta William Roe (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
News 1: One year and counting
A year in, Rust is changing fast but still stable. Links Rust 1.9 blog post release notes LLVM Projects built with LLVM Wikipedia discussion MIR blog post play.rust-lang.org – note the MIR button! Two enhancements enabled by MIR: Non-zeroing dynamic drop RFC pull request and discussion Issue 811: “Non-lexical borrow scopes and better treatment of nested method calls” Cargo blog post rustup blog post install from rustup.rs Sponsors Aleksey Pirogov Chris Palmer Daniel Collin Derek Morr Hamza Sheikh Lachlan Collins Leif Arne Storset Luca Schmid Micael Bergeron Pascal Hertleif Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo reddraggone9 Ryan Ollos Vesa Kaihlavirta William Roe (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
Bonus 5: Better than open-source contributions
Some things matter more than contributing to open-source software in your free time. A lot more. It’s trendy to ask for open-source work as evidence of your interest in tech and commitment to software development. Trendy and completely wrong. Companies should not demand open-source contributions from their employees, and beyond that, should learn to recognize that profit is not the most valuable thing in the world. People are. Links Xi editor Rust survey Expecting people to do open-source work Python Testing 18: Testing in Startups and Hiring Software Engineers with Joe Stump Tweet about it by Joe Stump Sponsors Aleksey Pirogov Chris Palmer Daniel Collin Derek Morr Hamza Sheikh Lachlan Collins Leif Arne Storset Luca Schmid Micael Bergeron Pascal Hertleif Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo reddraggone9 Ryan Ollos Vesa Kaihlavirta William Roe (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
e014: Stringing things along
Strings &strs and Vecs and slices (and Unicode) – oh, my! Notes This episode, I take a deep dive on strings in Rust, looking at the differences between String and &str, discussing Unicode a bit, and then expanding the discussion to think about how these types relate to the types they’re built on (like Vec). Links Strings: The Rust Book Rust by Example str docs: module primitive type String module type definition Dereferencing coercions std::ops::Deref Sponsors Aleksey Pirogov Chris Palmer Derek Morr Hamza Sheikh Lachlan Collins Leif Arne Storset Luca Schmid Micael Bergeron Pascal Hertleif Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo reddraggone9 Ryan Ollos Vesa Kaihlavirta William Roe (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
Bonus 4: We can have nice things
Just how good Rust is, and how you can learn it even if you’re busy. Notes Sometimes life goes crazy and I don’t have time to do all the technical writing required for a full episode, but I can’t get Rust off my mind, so I record an episode like this one. Where I talk a bit about how versatile Rust is and suggest some surprising ways you might be able to use it. Links Rust 1.8 blog post Fake build tool in F♯ HackerNews on Rust 1.8 Someone using it for personal projects Using it in place of scripting languages “Feels like Python, runs like C” Sponsors Aleksey Pirogov Chris Palmer Derek Morr Hamza Sheikh Lachlan Collins Leif Arne Storset Luca Schmid Micael Bergeron Pascal Hertleif Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo reddraggone9 Ryan Ollos Vesa Kaihlavirta William Roe (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
e013: Staying alive
Reasoning about and using lifetimes in Rust (and why we need them) Notes Lifetimes are our way of reasoning about how long a given piece of data is available and safe to use in Rust. The reason we don't have the dangling pointer problem is that we do have lifetimes instead. They're not magic, they're just a bit of semantics and syntax that let us specify the rules for how long any given item lives, and how long references to data must be valid. Links Diesel Tutorial API docs Mio, an I/O library Getting Started API Docs Sponsors Aleksey Pirogov Chris Palmer Derek Morr Hamza Sheikh Lachlan Collins Leif Arne Storset Luca Schmid Micael Bergeron Pascal Hertleif Ralph Giles ("rillian") Ralph "FriarTech" Loizzo reddraggone9 Ryan Ollos Vesa Kaihlavirta William Roe (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
e012: I'm not familiar with that expression
What it means to be an expression-oriented language, and how that works out in Rust. Notes Rust is an expression-oriented language. What does that mean, and how does it play out in Rust? We look at if and match blocks, discuss looping constructs, and examine functions, and then widen out to discuss how having an expression-oriented language can change the way we think about programming. Links Redox Servo alpha announcement WebRender Wired article on Dropbox Rust documentation on expression-oriented-ness: Rust Book Rust by Example Rust Reference Removing Rust ternary Digits of pi necessary for astronavigation Sponsors Aleksey Pirogov Chris Palmer Derek Morr Hamza Sheikh Lachlan Collins Leif Arne Storset Luca Schmid Micael Bergeron Pascal Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo reddraggone9 Ryan Ollos William Roe Become a sponsor Patreon Venmo Dwolla Cash.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
e011: Once Upon a Type
Type systems: strong vs. weak, dynamic vs. static, and degrees of expressivity. Notes Talking about type systems! A broad and wide-ranging discussion about type systems in general, with specific examples from languages like PHP, JavaScript, Python, C, C++, Java, C♯, Haskell, and Rust! What is a type system? What are the kinds of things we get out of type systems? What are the tradeoffs with different type systems? What is Rust’s type system like? What is especially attractive about Rust’s type system? A comment on the C integer/character string addition example: what’s actually happening there is that the character string is an array “under the covers,” and as such has an address. C silently switches to using the memory address, which is of course just an integer, when you try to add the two together. As I said on the show: the result is nonsense (unless you’re using this as a way of operating on memory addresses), but it’s compileable nonsense. In a stricter and stronger type system, memory addresses and normal numbers shouldn’t be addable! Links Rust 1.7 released HashMap changes Introduction to Type Theory Visualizing Rust’s type-system The Many Kinds of Code Reuse in Rust Sponsors Aleksey Pirogov Chris Palmer Derek Morr Hamza Sheikh Lachlan Collins Leif Arne Storset Luca Schmid Micael Bergeron Pascal Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo reddraggone9 Ryan Ollos William Roe Become a sponsor Patreon Venmo Dwolla Cash.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
Interview 1::Part 2 – Sean Griffin
Sean Griffin on type systems and hopes for Rust's future Notes Chris chats with Sean Griffin about the tradeoffs between mental overhead and type safety, the expressiveness of different type systems, and some of the places where Rust currently falls down. Corrigenda Sean noted he could be wrong about IEnumerable<T> not having a Sum method in C♯, and post-show research indicated that he was (it's possible it was added after he had stopped doing .NET work, of course). See the documentation for details on how IEnumerable<T>.Sum it behaves in C♯ if you're curious. As a related note, I (Chris) have done a little bit of digging on C♯ in the interval and it's fair to say that while a lot of the "ceremony" involved in writing C♯ is annoying, it's much more than just a "slightly nicer Java", and indeed is a much nicer language than my previous, limited exposure had led me to believe. It's no Rust or F♯, but its type system is substantially more capable than Java's. Links fmap Discussion of fmap with Optional in Swift In Haskell Rust: Trait objects Specialization RFC Implementation Diesel Sponsors Aleksey Pirogov Chris Palmer Derek Morr Hamza Sheikh Leif Arne Storset Luca Schmid Micael Bergeron Ralph Giles ("rillian") reddraggone9 Ryan Ollos William Roe Become a sponsor Patreon Venmo Dwolla Cash.me Follow New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
Interview 1::Part 1 – Sean Griffin
Sean Griffin on Rust, ORMs, and Web Frameworks Notes Chris chats with Sean Griffin about his programming background and initial experience with Rust, Rust's appeal, and what he's doing with Diesel and some of his plans for a new web framework in Rust. Links Ruby on Rails Active Record Diesel GitHub Gitter The Bike Shed episodes which include talk of Rust and Diesel 51: Is Sim City Still Running (with Steve Klabnik) 49: A More Practical Haskell 48: Is Everyone Trying Their Best? 46: Don't Breath, Save the Planet 44: It Won't Crash... It Might Crash 39: Okay With Instability 32: Bug for Bug Compatibility 31: Oxidizing an ORM 27: I've Got 29.97 Problems (and codecs are some) 23: Why Did They Call It Rust? Maybe Haskell Sponsors Aleksey Pirogov Chris Palmer Derek Morr Hamza Sheikh Leif Arne Storset Luca Schmid Micael Bergeron Ralph Giles ("rillian") reddraggone9 Ryan Ollos William Roe Become a sponsor Patreon Venmo Dwolla Cash.me Follow New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho
Bonus 3: Building as a community
Community is one of the most important parts of a programming language community, or indeed any technical community. In this episode, I talk a bit about what happens when you don't have a good community, how Rust's community has done well so far, and then how to keep building a good community and how to build good things as a community. Sponsors Aleksey Pirogov Chris Palmer Derek Morr Hamza Sheikh Luca Schmid Micael Bergeron Ralph Giles (“rillian”) reddraggone9 William Roe Become a sponsor Patreon Venmo Dwolla Cash.me Follow New Rustacean: Twitter: @newrustacean App.net: @newrustacean Email: hello@newrustacean.com Chris Krycho Twitter: @chriskrycho App.net: @chriskrycho