Contents

Michael Snoyman - My Rust Story

Maria Kucharczyk

27 Nov 2024.3 minutes read

Michael Snoyman - My Rust Story webp image

Welcome to My Rust Story blog series!

As Rust turns 10 in 2025, it’s the perfect time to celebrate this language and its thriving community. In this series, you’ll get a glimpse into the insights and experiences of Rust community leaders who are shaping this vibrant ecosystem.

Curious to meet them in person? Don’t miss Rustikon - the first Rust conference in Poland!

rustikonbanner

Our first guest is Michael Snoyman, a software developer and blockchain specialist at FP Complete, leads a team of developers with a passion for Rust and functional programming. His expertise bridges strongly typed programming, actuarial science, and economics, covering blockchain development, statistics, and software architecture.

How did you first get introduced to Rust, and what were your initial thoughts about it?

For over a decade, I’ve been a firm believer in strong typing as a foundation for building better software. A few friends from the Haskell community kept telling me about Rust, praising its capabilities. My initial thought was, “That's a great replacement for C++, but I don’t want to deal with manual memory management in my application code.”

Can you share a moment when you realized, “Wow, Rust is amazing”? What features or capabilities of Rust made you feel that way?

The features of Rust that I loved the most from my initial review were:

  • strong types,
  • sum types,
  • pattern matching,
  • memory safety,
  • traits,
  • and iterators.

They were essentially all the features I loved about other languages, seamlessly bundled into a cohesive ecosystem with great tooling. I didn’t need any convincing.

When I first started using Rust, it still had many rough edges. However, with the ongoing effort to improve its ergonomics, those issues have been sufficiently removed. Once the pain points were resolved, Rust became my go-to language.

What’s your favorite programming meme?

Not sure it’s my all-time favorite, but this one definitely makes me chuckle:

Zrzut%20ekranu%202024-11-27%20o%2010.58.18

Source

Or just a joke:

There are 2 hard problems in computer science: naming things, cache invalidation, and off-by-one errors.

What advice would you give to someone just starting out with Rust?

Use clone a lot and don’t overthink it. It’s easy to fall into the trap of trying to over-optimize all your code, avoiding unnecessary memory allocations or even reference counting. While that’s a great long-term goal (and one Rust makes impressively achievable), it’s not where you need to start.

When you’re just beginning with Rust, take advantage of the language’s safety features, accept a few performance trade-offs to get things done, and focus on building your confidence. Over time, as you become more familiar with Rust, you’ll naturally start spotting opportunities to fine-tune your code for better performance.

Also: use clippy and respect warnings. You’ll learn a lot.

How have you seen Rust evolve over the years, particularly in your area of work?

async/await is by far the biggest change. I wrote a blog post series called “Rust Crash Course,” and section 7 covered using tokio, before async/await was available in the language. The difficulties were off the charts, it was by far the hardest blog post I’ve ever written. With the introduction of async/await, so many complex topics simply vanished.

What do you predict for the future of Rust over the next decade?

Incremental improvements to the language, nothing groundbreaking. Increased real-world adoption. I believe we’ll begin to see a new wave of programmers entering the market who don’t view Rust as a cool new technology but rather as the standard way to write high-quality code.

Is Rust only for systems programming, or do you see it as a valuable technology in other areas as well?

What surprised me most about Rust is how well its design trade-offs were chosen. Despite not having the conveniences of a garbage collector, its other strengths make it an excellent choice for a wide range of applications. This includes server-side programming (which is where I spend most of my time), smart contract development, frontend coding, mobile apps, and much more.

Rustikon 2025

Rustikon 2025 is coming! Celebrate Rust's birthday with us - we announced the speakers list, and soon we'll reveal more of our exciting plans and surprises! Follow our social media and #rustikon hashtag to be updated!

Blog Comments powered by Disqus.