
Oxide with Steve Klabnik
Rust in Production
Navigating the Programming Language Landscape: Rust vs. Zig
This chapter explores the evolution of programming languages with a particular emphasis on Rust's strong memory safety features compared to Zig. It highlights the preference for Rust in production environments and discusses the importance of memory safety in the context of language selection.
00:00
Transcript
Play full episode
Transcript
Episode notes
Speaker 1
What
Speaker 2
I ended up finding, it was very hard because when I was in college, I used to just arrive to Newsweek, you know, but they don't really, they don't exist really in that form anymore. So I finally found one called The Week. And it does just what you're saying. For each story, it actually had quotes from all sides of the political spectrum. And I found it really quite illuminating and lovely. I want to ask you about for people who work in the tech industry, I'm sure some of them will be listening to this. People who work in the tech industry as designers, developers, leaders have a lot of leverage at Instagram, Google, Facebook, Netflix, OpenAI now. And for any of them listening, how could they steer technology toward interacting in healthy ways with their customers? Is it even possible with this top line of profit?
Speaker 1
Yeah. So I don't have the answer to this question. I wish I did. I think it's something we need to be working on. But there's a couple of lenses. One I shared earlier about the collaboration between tech companies and regulators and scientists and individuals to gradually lead to culture change. And you can look at things like drunk driving and cigarettes as some historical examples of these type of collaboration, which I think is essential. But for the average technologist who's working at one of these companies, the reality is, as you probably already know, you're in a system with incentives, and it doesn't really feel like there's any way to escape those incentives. So depending on where you are in the hierarchy, you might be simply mandated to follow those incentives as they are, or you might be someone who actually has a say in setting the incentives. So let's start with the latter group. If you actually have a say in setting those incentives, let's be realistic. You do need to make a profit. You do need to make technology that drives business, but that doesn't have to be the only incentive. And as we've talked about it in personal life, that awareness drives change. Simply measuring something else can have a dramatic impact. So what is a small amount of resource you can set to measure something? And the way that I tend to package this for large companies is if you go to the mission and vision of these companies, you tend to find the answer to the question of what to measure in a way that is palatable to the leadership and the board. Because the reality is Facebook wants to connect the world, Airbnb wants people to belong anywhere, et cetera, et cetera. So why aren't we measuring belonging? Why aren't we measuring a sense of personal deep connection? I don't know what changes that lead to, and maybe I'm being a bit idealist, but I think if your dashboard has, yes, adoption, retention, activation, but also has some measure that's connected to your highest vision and values, it can be a way to start the conversation of systemic change. And I also want to address the individual who doesn't have a say in the incentives. And what I have for that person is that, you know, fundamentally, I believe change comes from within and you have a long career ahead of you. Educating yourself about these approaches, working on your own personal relationship with technology, seeing through the conceptual illusions in your own life, seeing how you can bring that to your design practice to, yes, you do have to shoot that three-pointer through those incentives, but is there a way you can do that in a compassionate way and trying to find those opportunities and stay true to that deeper mission? Your goal, if that's you, is to not let the incentive structure turn you into an incentive driving robot, but to retain your humanity while you do what you need to do to succeed and to climb the ladder and eventually, hopefully, find yourself in a position where you can shape those incentives. One
Speaker 2
of the favorite things I learned at work is what gets measured gets done. So in Buddhist centers, we do something that sounds a little cheesy, which is that before we start a meeting, we say, may our work benefit others.
Speaker 1
And
Speaker 2
I think a little bit about that when I think back to working at Facebook if we had just said that at the beginning of every meeting boy I think we would have made more beneficial products
Speaker 1
yeah and we do have to learn from our mistakes like you were in-house at Facebook and you know some incredible work was done at Facebook and it's still happening but there's some some mistakes were made and I think we do need to accept that. And we need to learn from it. And I think when you go back in time, that's one example. And I think measuring elements around what was actually happening in the user experience for individuals would have been a huge boon to help steer the ship early when it wasn't too late to actually think about the effects of some of these elements like newsfeed and others. So
Speaker 2
you've, you already led us through one nice exercise and you agreed to lead a meditation that will air separately. Most of our interviews, our guests lead a meditation and we're going to air that in the next episode, but could you tell us a little bit about the meditation you're going to lead?
Speaker 1
Yeah, we're going to go through something that may seem a little bit scary to people is we are going to get into a mindful state. And then we are going to engage with our phone in that meditation. And what we're going to do is, if you've ever done like a mindful eating exercise, there's a lot of inspiration there where you inspect the raisin and sniff it and eat it and think about, you know, where it comes from. So we're going to deeply and mindfully investigate our foam with clarity, including activating it. And then at the end, we are going to look a little bit into false urgency in particular, and notice the tug of false urgency on our attention in the moment.
What's even cooler than writing your own text editor or your own operating system? Building your own hardware from scratch with all the software written in Rust -- including firmware, the scheduler, and the hypervisor. Oxide Computer Company is one of the most admired companies in the Rust community. They are building "servers as they should be" with a focus on security and performance to serve the needs of modern on-premise data centers.
In this episode, I talk to Steve Klabnik, a software engineer at Oxide and renowned Rustacean, about the advantages of building hardware and software in tandem, the benefits of using Rust for systems programming, and the state of the Rust ecosystem.
About Oxide Computer Company
Founded by industry giants Bryan Cantrill, Jessie Frazelle, and Steve Tuck, Oxide Computer Company is a beloved name in the Rust community. They took on the daunting task of rethinking how servers are built -- starting all the way from the hardware and boot process (and no, there is no BIOS). Their 'On The Metal' podcast is a treasure trove of systems programming stories and proudly served as a role model for 'Rust in Production.'
About Steve Klabnik
In the Rust community, Steve does not need any introduction. He is a prolific writer, speaker, and software engineer who has contributed to the Rust ecosystem in many ways -- including writing the first version of the official Rust book. If you sent a tweet about Rust in the early days, chances are Steve was the one who replied. Previously, he worked at Mozilla and was a member of the Rust and Ruby core teams.
Proudly Supported by CodeCrafters
Proudly Supported by CodeCrafters
CodeCrafters helps you become proficient in Rust by building real-world, production-grade projects. Learn hands-on by creating your own shell, HTTP server, Redis, Kafka, Git, SQLite, or DNS service from scratch.
Start for free today and enjoy 40% off any paid plan by using this link.
Links From The Episode (In Chronological Order)
- The Rust Programming Language (No Starch Press version) - The official Rust book
- The Story of Rust - FOSDEM / The History of Rust - ACM - Early history of Rust
- Signing Party - Story from Macintosh development
- The Soul of a New Machine by Tracy Kidder - Classic book on computer engineering
- I have come to bury the BIOS - Bryan's talk on firmware
- Beowulf cluster - Early parallel computing architecture
- Bryan's blog post on Rust - Journey of a systems programmer to Rust
- JavaOS - Operating system written in Java
- D Programming Language - Systems programming language
- Garbage Collection in early Rust - Historical Rust development
- Removing green threads RFC - Major change in Rust's concurrency model
- Hubris - Oxide's embedded operating system
- Tock OS - Embedded operating system in Rust predating Hubris
- cargo-xtask - Build automation for Rust projects
- Hubris Build Documentation - Building Hubris using cargo xtask
- Buck Build System - Facebook's build system
- Buildomat - Oxide's build system
- Omicron - Oxide's manufacturing test framework
- illumos - Unix operating system
- bhyve - BSD VM hypervisor
- About Self-hosted Runners - GitHub Actions documentation
- Async Drop Initiative - Rust async development
- Rust Playground Example - Demonstrating helpful error when using prefix await operator
- Rust Book - Modules - Rust module system
- OpenAPI Specification - API documentation standard
- Dropshot - Oxide's OpenAPI server framework
- Axum - Web framework for Rust
- Oxide Console - Oxide's web interface
- Oxide Console Preview - Demo of Oxide Console using a mocked backend
- Oxide RFD 1 - Request for Discussion process
- Rust RFCs - Rust's design process
- IETF RFCs - Internet standards process
- Zig - Systems programming language
- TigerBeetle - Financial accounting database written in Zig
- Bun - JavaScript toolkit written in Zig
- CockroachDB - Distributed SQL database used in Oxide's backplane
- Oxide and Friends: Wither CockroachDB? - Discussing Cockroach's switch away from BUSL
- Mozilla Public License - Oxide's default software license
- Asahi Linux - Linux on Apple Silicon with Rust drivers
- Buck2 - Meta's build system
- Jujutsu (jj) - Git replacement
- Steve's Jujutsu Tutorial - Guide to jj
- Steve's blog post on not naming branches
Official Links
- Oxide Computer Company - Building servers as they should be
- On The Metal Podcast - Stories from the hardware/software boundary
- Steve Klabnik's Blog - Thoughts on programming, Rust, and more
- Steve Klabnik on Bluesky - Follow Steve for Rust updates and more