Rust in Production

Matthias Endler

Season 2 Finale

As we approach the finale of our second season, it's time for another recap.

2024-08-08 22 min

Description & Show Notes

As we approach the finale of our second season, it's time for another recap.

Could we shed some light on the current state of Rust's usage in the industry? What has changed in our perception of Rust in production since our last season?

While more companies started to embrace Rust, some of the magic of Rust's early days is gone. I expect more ripple effects as the community clashes with the industry's demands.

This episode takes on a more somber tone, as we peer into the massive tech debt we have accumulated as an industry. And in the dark: a faint glow, a narrow golden path that points us towards a more hopeful future.

Results from the Survey 

A few weeks ago, we asked you to fill out a survey about the Rust in Production podcast. Thank you to everyone who participated! We received a lot of valuable feedback. 
In total, we got 82 responses. Here are some of the key takeaways: 
How did you discover the "Rust in Production" podcast? 
  • 43% found the podcast on Mastodon
  • 21% Podcast directory (Apple, Spotify, etc.)
  • 9% Recommended by a friend
  • 6% Twitter
  • 5% LinkedIn
  • 5% Search engine
  • 4% Reddit
  • 7% Other
How Many Episodes Have You Listened To?
  • 26% have listened to all episodes
  • 27% have listened to most episodes (more than half)
  • 27% have listened to some episodes (less than half)
  • 10% have only listened to one episode
  • 10% Other
Which Aspects Of The Show Do You Enjoy The Most?
  • 96% enjoy the technical content (Tech Deep Dives)
  • 49% enjoy the business motivations to choose Rust
  • 8% other

Top 5 topics listeners want to see covered in future episodes:
  1. Cloud native development and microservices
  2. Enterprise adoption
  3. Performance-critical applications
  4. Web and network services
  5. Ecosystem deep dives

Top 5 suggested changes for the podcast:
 
  1. More technical focus
  2. Improved audio quality
  3. Diversity in guests
  4. Tighter editing
  5. Format variations

Current level of experience with Rust among listeners:
 
  • 15% Beginner (less than 1 year of experience)
  • 46% Intermediate (1-3 years of experience)
  • 19% Advanced (3-5 years of experience)
  • 14% Expert (5+ years of experience)
  • 6% Don't use Rust, but interested in learning

How listeners typically listen to "Rust in Production":
 
  • 60% While doing household chores
  • 58% While commuting
  • 26% While exercising
  • 21% Dedicated listening time
  • 10% During work breaks
  • 9% While coding
  • 10% Other

How 'Rust in Production' influenced perception of Rust's viability in production:
 
  • 41% Somewhat improved confidence in Rust for production use
  • 36% No change in perception
  • 19% Significantly improved confidence in Rust for production use
  • 4% Don't have an opinion

Aspects of Rust in Production listeners are most interested in:
 
  • 75% Systems programming
  • 59% Web development
  • 48% Data processing and analysis
  • 46% Embedded systems
  • 43% Network programming
  • 25% Game development
  • 21% Machine learning / AI

Formats listeners are most interested in:
 
  • 35% System architecture deep dives
  • 28% Advanced Programming Concepts in Rust
  • 27% Idiomatic Rust discussions
  • 9% Pair programming sessions
  • 1% Other

Office Hours:
Join our Corrode Office Hours every Thursday at 4 PM UTC. Bring your questions, and we'll try to help you out! Dates: August 15, 22, 29; September 5, 12, 19, 26; October 3. To learn more, check out the office hours page on our website: https://corrode.dev/office-hours
 
Links from the Episode:

The History of Rust - Steve Klabnik: https://youtu.be/79PSagCD_AY?si=oNH9u1HPQ9welYjZ
Nickel Framework by Christoph Burgdorf: https://nickel-org.github.io
tokio on crates.io: https://crates.io/crates/tokio
The 'New Rustacean' podcast: https://newrustacean.com/
Simon Brüggen (M3t0r) on GitHub: https://github.com/M3t0r
Simon Brüggen (M3t0r) on Mastodon: https://hachyderm.io/@m3t0r
Matthias Endler on Mastodon: https://mastodon.social/@mre
About corrode Rust Consulting: https://corrode.dev/about
'Rust in Production' Podcast on Apple: https://podcasts.apple.com/us/podcast/rust-in-production/id1720771330 'Rust in Production' Podcast on Spotify: https://open.spotify.com/show/0Hf6gWrzpSzXp1X0cebbsT

Credits:
Audio editing and mastering by Simon Brüggen (M3t0r).
 
About corrode:
"Rust in Production" is a podcast by corrode, a company that helps teams adopt Rust. We offer training, consulting, and development services to help you succeed with Rust. If you want to learn more about how we can help you, please get in touch.

Transcript

This is Rust in Production, a podcast about companies who use Rust to shape the future of infrastructure. I'm Matthias Entler from Corode, and in this Season 2 finale, we'll revisit key insights and explore Rust's transformative impact on modern software development. I waited for a long time to start this podcast. I wanted others to start a format like this, but no one did. it. They say produce the content you want to consume so I went ahead and created it. This already marks the end of season two and the season finale is a good time to reflect on the past episodes but also to reflect on Rust itself. Time flies and as I reflect on this I feel a bit melancholic. I remember 2015 and how enthusiastic we were about Rust's future. I had the same feeling like 10 years before when I started using Python. I knew that Python would be big. It would be the future. Fast forward a decade and it was one of the most popular languages in the world. I had the same feeling about Rust. It would also be the future. Fast forward a decade and here we are. We've grown as a community. We must be in the millions now. Back in the day, we were a much smaller group. You would know the names of many influential Rust sessions. Alex Crichton, Brian Anderson, Aaron Turon, Nico Matsakis, Without Boats, Steve Klapnick, and many more. I am thankful for the conversations I had with them. I can say that I met a lot of great developers in my life, but the very best ones are in the Rust community. These people built the very foundation that we stand on today. Projects like Tokyo were driven by dedicated people. It's probably still the same today, but I don't interact with the great authors that much anymore. There's way too much going on. On the other side of the spectrum, big organizations are using those crates in production now, so the stakes are higher and things don't change that fast. Overall, these changes are positive, but some of the magic is gone. The first talk I ever saw about Rust was by Steve Klapnick. It was truly special. Steve has this unique way of talking about Rust. You can feel that he deeply cares about the language and its community. He'll make you feel like you're part of this from day one. After a long time of searching, he reminded me again of what I loved about programming. It was the human aspect of it, and the understanding that big projects start with passionate individuals like you and me. There's an anecdote about Steve that I love to tell. He was at a conference, and someone who came from the Rails community asked him if he knew of a Rails-like framework for Rust. Steve said, no, but you could write one. That's how the Nickel framework by Christoph Burgdorf was born. It's no longer maintained, but the story is a good example of how Rust felt back then. It was a community of supportive people who were willing to think big and take risks. The sky was the limit. Today we have many web frameworks, of course, but that early excitement of exploring new solutions to old problems was unique. The progress we made in those early days was remarkable. I've never been as deeply involved in any other community as I was in Rust, and witnessing the ecosystem take shape in front of my eyes was a privilege. Thanks, Steve, for your unique way of writing and talking about Rust. It is what brought me and others into the community. Another thanks goes out to Chris Cratchell. We only met in person once, but he ran the first podcast about Rust that I was aware of, New Rustation. His podcast was so polished, so well produced, so well researched. To this day, it sets the bar I'd like to match with this podcast. Thanks to Chris for being an inspiration and for carrying the torch in the early days. By now, it has become clear that something like Rust needs to exist. From the White House's call for memory-safe software development, to the NSA's guidance on protecting against memory safety issues, and DARPA's funding of C2RUST migration projects, it's clear that the industry is shifting towards safer languages, sometimes reluctantly so. I expect more companies to make the switch to Rust in the future. Large companies are building teams to migrate their C++ and Python codebases to Rust. It takes time, but the writing is on the wall. Expect to hear more initiatives from automotive, aerospace and public infrastructure in the future. Furthermore, the work that Proximo does for the Internet's most critical infrastructure like NTP is also very important. Many people don't know how much public infrastructure depends on these projects to be alive and well maintained. From TLS over NTP to CLIP, these projects are the backbone of the Internet. We sit on a pile of technical debt, and there's little hope of paying it off by sticking with our old set of tools like C and C++. It simply doesn't work. Somewhat ironically, tech debt is a major catalyst for change. Not better performance nor cost savings, but the sheer amount of tech debt that we accumulated over the last few decades is the reason why we see so many companies struggling and looking for alternatives. Rust is in a unique position to address these issues, especially in the security space and systems programming. That was one main area of focus for this season. Many of our guests work on large code bases written in C or C++ or need to interact with code written in these languages on a regular basis. From Curl to Thunderbird, from OxidOS to System76, companies are moving to Rust for greener pastures. The old ways of doing things are no longer sustainable and Rust is best positioned to be the answer. Daniel Senberg, Curl core maintainer and expert C programmer, said the following about C++ in comparison to Rust.
Daniel
00:06:31
I think, for example, one of the downsides with C++ is that it is so much C. So that it sort of, it brings all the C and it tries to do things C++, which allows everyone to shoot themselves in the foot and at the same time, try to do everything object-oriented in the way, you know, you never figure out who's doing what because there are just, you know, everything is inheriting everything else and you just never understand who's doing what. And so I think by not having this based on C, I think Rust has a much better position. And of course, I think Rust has a much better starting point because just of the ownership and trying to do it memory safe and stuff like that. And then half of the C++ people would say, well, you can do it with C++ as well. But no, you can't. So yeah, I think Rust has a much more going for it as a safe language.
Matthias
00:07:29
Here's the perspective of Jeremy Soller, principal engineer at System76 and excellent systems programmer with decades of experience.
Jeremy
00:07:37
I have so many examples of skilled programmers using the absolute top of the line. I mean, just recently there was a glibc issue, and it can be exposed remotely through PHP code, a glibc issue can allow remote exit code execution there is no library in the linux ecosystem that is as heavily used as glibc if there was a smart person who could apply some kind of technique to glibc they have they did there and yet for 24 years there was a vulnerability present This is a fact of the language itself.
Matthias
00:08:17
The experts confirm that achieving the same high quality output with C or C++ is very hard if not impossible. This is no longer a matter of opinion. We heard it many times from experts in different fields. And no, modern C++ is not the answer. It's merely a band-aid for more fundamental problems with the language. It is not enough to try harder and write better C++ to avoid undefined behavior or insecure code. Even experts struggle to get it right 100% of the time. And so they are left with gnarly runtime bugs that are hard to track down. The burden should not be on the programmer to get it right. No, the goal is to use better tools which help build better software in general and have an escape hatch from the current state of affairs. And for many companies, Rust is merely a means to an end. Here's Aleksandr Radovich from Oxido S.
Alex
00:09:13
We shipped three years ago an industrial system that works today in industry. Industry i mean before oxid os long before oxid os we shipped rust software into the industry and we chose rust not because it was fancy because we the client allowed us to rewrite the project because they liked it and we said we had a lot of problems in c let's try it in rust we had one issue never heard about the client again i mean never heard about the client no news is good news I mean, it works. And that was more than three years ago when we shipped it. When he said never heard about the client again, I wondered about why that was the case. But yeah, I guess in this context, it means they didn't really... No, no, news is good news. I mean, it works. Exactly, yeah. The system works. The client is happy. They don't need patches to it because it works. It didn't fail.
Matthias
00:10:06
The companies I spoke with have a very pragmatic approach. It's not about the language. It's about the results. And that's what businesses care about. Do you ever feel like you're spending more time managing your data pipelines than actually using the data? Data streaming is critical for modern software development, but most platforms struggle to keep up. Pipelines are often a nightmare, slow, flaky, and a pain to maintain. We end up cobbling together Kafka, Flink, Spark, and Lambdas just to get data where it needs to be. Today's sponsor, Infineon, the creators of Fluvio, is aiming to fix that. Build from the ground up in Rust, Fluvio is lightning-fast and rock-solid. It allows you to build composable, event-driven data pipelines in minutes, not months. Fluvio compiles to a single 37MB binary, running stream processors on the edge. With smart modules, you can transform data on the fly. Whether you're dealing with IoT sensor data, financial transactions or custom events, Fluvio can handle it. It's built by devs for devs with a clean API and an experience similar to Ruby on Rails. Visit infineon.com slash rust in prod to explore how you can streamline your data infrastructure. That's infineon.com slash rust in prod. Some companies build things in Rust which would have been way harder to do before, especially with smaller teams in time-constrained environments. Environments for example fusion engineering is building a drone controller in rust they are a small team and they need to move fast rust allows them to do that.
Jakub
00:11:49
But it turned out that we have quite multi-disciplinary team you need software engineers you need control engineers which know all the math of making things fly you also need mechanical engineers and people who work more with the hardware. And it turns out for people who don't have a lot of experience, who are not professional software engineers, learning C++ can be quite difficult. And it's very easy to, let's say, create bugs or memory violations, access violations or stuff like that. Yeah. We tried to use Rust and it turned out that the people who are not professional software engineers can pick it up quite fast, can be productive with it quite fast. And the code quality is much higher because Rust, usually there are idiomatic ways how to do certain things. And there is not like 15 ways to do one thing which changed over the years. That's maybe thanks to also Rust being younger language which doesn't have that much of a baggage so the benefit for us was that more people on the team are able to write code, and the quality of the code is I think much higher.
Matthias
00:13:12
That was Jakob Walter from Fusion Engineering. Matic is building a smart vacuum robot in Rust. Everything happens on the device itself. They get a lot of stuff done with a small team. Here's what Eric Zappanen from Matic had to say.
Eric
00:13:26
There's a lot of articles that say Rust is good and we like it, but what I discovered is I can't imagine doing this job with anything less. Going to another systems programming language like C or C++ would feel like, banging rocks together to make fire. You know, these are things that people used to do, but we've learned how to be more productive than that.
Matthias
00:13:48
AMP Robotics uses Rust to build recycling facilities. They managed to build large parts of it very quickly with Rust. Let's hear it from Carter Schultz.
Carter
00:13:56
But the reality is from like the first time we tried to power up the facility, the Rust application was running 99% smoothly. No major hiccups was not the blocker. So, So at the end of this six-month build of an entire facility, and it's time to turn on the facility and run, software did not cost us a single day of schedule. We were able to test and develop the software in parallel to the hardware getting stood up. And at the end of the day, when we plugged them in together, and it was like, okay, time to go integrate, it just worked. That never happens. That should not happen. I feel like an asshole getting up here and telling people that that happened because I won the lottery ticket. It like that's not a reproducible thing that people should be like oh well that's what i should expect out of rust no we got lucky i will fully admit that but i do think rust helped make that possible just given you know the volume of c++ code i've written in the past i know that if you write 150 000 lines of c++ code there will probably be 15 or 20 gnarly hard to debug just insane things going on that are undefined behavior and segmentation faults and weird crap like that. We had zero of those at time of powering up the facility. Like none of them appeared. And that's, that was just cool. That's nice.
Matthias
00:15:14
To businesses, results are what counts the most, not the language. Rust is a tool that helps them achieve those results. I think that's a trend that will continue. At the end, Rust is supposed to be a tool that helps you get things done. It's not a silver bullet, but it's a very good tool for many jobs. Yes, prototyping can be tedious in Rust. It is an often-mentioned downside. However, Rust shifts a lot of the complexity of the software development lifecycle to the left. That means you catch bugs in the initial phase of the development because Rust forces you to handle edge cases. But a common fallacy is to see that as a big cost center. In reality, long-term maintenance is much more important and costly. By the time your Rust project hits production, all the hard questions have been answered. If it compiles, it runs is a common mantra among Rust users.
Brandon
00:16:06
Once your code builds, you're sure that you have a certain standard in terms of safety, in terms of quality, that you have a nice and more maintainable and less error-prone, outputs from from that and it's it also kind of makes makes you reconsider your relation with the compiler itself because you know in other compiled languages the compiler is you know just something that turns code into into binary in rust the compiler is more is that but also kind of a a bit sort of a of an advisor in you know if you do this you're going to if i if i let you do this you're going to run into those kind of issues in the future.
Matthias
00:16:57
That was Brandon Abolivier from Thunderbird. We hear that time and again in the podcast and in our work with clients. So I'm glad people start to get the message. When I launched this podcast, I did so because many companies expressed reluctance to use Rust, claiming it wasn't used in production. Now the goalpost has shifted. It's no longer about Rust's use in production generally, but rather its adoption in specific contexts. Companies now cite the lack of Rust in their particular industry, the absence of similarly sized organizations using Rust, or concerns about interoperability with their existing codebase. Despite these evolving challenges, this shift in perspective represents progress in Rust's journey towards wider adoption. The willingness for companies to talk about Rust has also improved. There are still way more stories which remain untold and will probably never be told, but the trend is clear. Rust is moving into production. I think that's a win, but there's a long way to go. Just like fixing a bug in your program and getting a new error message, we made the same kind of progress in regard to wider Rust adoption. For 60% of you, the podcast improved your confidence in Rust for production use. 19% of you even said that the podcast significantly improved your confidence in Rust for production. We know that from our survey a few weeks ago. That's a great outcome. The average listener is from the US or Germany, around 33 years old and has 1-3 years of Rust experience. Earlier I thought that Rust's use for business would be the main area of interest, but it turns out that many of you are mostly interested in technical deep dives. That surprised me. Spreading the message that Rust is great for businesses was the main goal to start this podcast. But it turns out most of you come for the tech part. Perhaps it aligns well with who I am. At the end, I also love to hear the stories from the trenches, instead of the rationale behind business decisions. It's just a better fit. The survey highlighted your main areas of interest. Systems programming led at 75%, followed by web development at 59%, data processing and analysis at 48% and embedded systems at 46%. This diverse set showcases Rust's versatility and our audience's varied expertise. Thanks to everyone who participated in the survey. It improved the perception of our audience. If you're interested, the full results of the survey are on corrode.dev slash podcast. What's left to say is that you are the future of Rust. The people that carry the torch forward. it. The people who will introduce Rust in your company. I want you to carry on that enthusiasm not only about Rust but about systems programming and infrastructure in general. It's an important topic which often gets neglected. I wish that some of you go ahead and contribute to the Rust project itself or start your own open source crate. I encourage you to write about your experiences with Rust and the challenges you face. If your company uses Rust you can help by sharing your story. We need to know what works and what doesn't. You can write blog posts, give talks, write a post in the Rust forum, the Rust subreddit, or on Mastodon. We'd also love to hear your story on the podcast. As we close the second season of Rust in production, now is the perfect opportunity to catch up on any episodes you might have missed. My personal highlights were my interview with some of my heroes, like Daniel Stenberg and Jeremy Sola, seeing Matic build a smart vacuum robot, and realizing that I might soon be able to buy my first rust-based home appliance. The lively discussion with Carter Schulz about a seemingly impossible task of building a recycling facility from scratch under time constraints. This concludes the second season of Rust in Production. We'll return for Season 3 in 8 weeks, and we already have some fantastic guests lined up. Some of them, you might know. To bridge the gap and to help you with your Rust Production projects, we're now offering office hours every Thursday from 4pm to 5pm UTC. Participation is completely free and the topic is up to you, as long as it has something to do with Rust in Production. So come and bring your questions. You can find a link to the event in the show notes. We'll also attend Eurorust on 10th and 11th of October, which takes place in Vienna. A few tickets are still available. Come and say hi at the conference. We might even have some Rustim Production stickers for you. I don't ask for this often, but if you enjoy the podcast, I would love if you could share your favorite episode with your colleagues or friends on Slack or Discord. Word of mouth helps us most. Thanks to our guests Daniel, Carter, Brandon, Eric, Alex, Jacob and Jeremy me for sharing your insights on our show and to simon brügen without whom the podcast certainly wouldn't exist he edits every single episode of the podcast which is probably the hardest job in the entire process also thanks to every listener for tuning in and i mean it if you want to make the most of rust check out our website corrode.dev we offer a range of services from consulting to training to help you and your company with your rust projects if you haven't already maybe Maybe subscribe so you don't miss out on Season 3. As always, all links are in the show notes. Thanks for listening to Rust in Production.