Why Everyone's Switching to Rust (And Why You Shouldn't)

Why Everyone's Switching to Rust (And Why You Shouldn't)

Is Rust Really That Good?

Introduction to Rust's Popularity

  • The speaker notes that many companies, including Discord and Dropbox, are rewriting their systems in Rust, citing significant performance improvements.
  • Curiosity arises about whether Rust's acclaim is justified or merely hype; the speaker aims to explore its actual state by 2025.
  • The video will cover Rust's features, comparisons with other languages, user experiences, and shortcomings.

Key Features of Rust

  • Rust promises memory safety without garbage collection—a critical advantage over languages like C/C++ where manual memory management can lead to vulnerabilities.
  • Memory safety issues account for 70% of Microsoft’s security bugs; languages with garbage collectors (like Java/Python) avoid this but incur performance overhead.
  • The borrow checker in Rust prevents unsafe memory usage at compile time, ensuring no runtime overhead while maintaining safety.

Comparison with Other Programming Languages

  • A comparison of building a CLI application in C, C++, Rust, Go, and Zig reveals distinct advantages and disadvantages:
  • C: Offers speed and control but requires manual memory management leading to potential errors.
  • C++: Adds modern features but increases complexity significantly.
  • Go: Simplifies development with fast compilation but sacrifices low-level control and some performance aspects.
  • Zig: Promises better tooling and compile-time safety but has a limited ecosystem.

Unique Positioning of Rust

  • Rust combines high performance akin to C with enforced memory safety through the borrow checker. This leads to initial struggles with compiler errors versus debugging runtime crashes later on.

Success Stories Highlighting Rust's Impact

  • Discord experienced severe garbage collection delays in Go; after switching to Rust for their read state service, they achieved a tenfold performance increase without freezes.
  • Dropbox spent four years rewriting their sync engine in Rust, claiming it acted as a "force multiplier" for their team efficiency.

Rust's Tooling and Performance Advantages

Rust Tools vs. Traditional Unix Tools

  • Rust tools like RIP, Grep, FD, BAT, and X outperform traditional Unix equivalents significantly, leading many to switch their entire toolchains.
  • The speed of searching through large codebases in milliseconds rather than seconds transforms workflow efficiency.

Writing Rust Code: Syntax and Learning Curve

  • Despite its normal syntax for functions, Rust involves complex concepts such as generic constraints and borrowing that are verified at compile time by the borrow checker.
  • New learners often struggle with the borrow checker; for instance, trying to modify a vector while holding a reference leads to compilation errors.
  • Transitioning from Java to Rust can be challenging due to different programming paradigms; understanding ownership is crucial for effective coding in Rust.

The Role of Cargo in Development

  • Cargo is praised for its functionality but is also described as opinionated compared to Gradle, which offers more flexibility in building infrastructure.
  • Error messages from Cargo are helpful for debugging but compilation times can hinder productivity; small projects may take 15–20 seconds to compile.

Challenges of Adopting Rust

Learning Curve and Mindset Shift

  • The learning curve associated with Rust isn't just about time; it requires a fundamental shift in thinking regarding ownership and lifetimes.
  • Developers' success with Rust varies widely based on their mindset rather than intelligence or experience; junior developers may excel where seniors struggle.

Integration Challenges

  • Integrating Rust into existing systems (like Java or C++) poses challenges that may not justify the benefits due to potential costs involved.

Conceptual Complexity

  • Concepts such as ownership, borrowing, lifetimes, traits, generics, macros, and async/await contribute to a steep learning curve known as "concept fatigue."

Why Some Teams Choose Alternatives Over Rust

Case Study: TypeScript's Decision

  • TypeScript opted to port its codebase to Go instead of Rust despite liking the latter due to faster development timelines—porting took about a year versus several years for Rust.
  • Attempts at porting TypeScript required extensive use of unsafe code or custom garbage collection strategies that complicated the process.

Conclusion on Language Choice

Rust: A Solution for Security-Sensitive Applications?

Evaluating Rust's Suitability

  • Rust is ideal for critical systems in security-sensitive applications and long-running services, but may not be suitable for rapid prototyping or projects with tight deadlines.
  • The ecosystem surrounding Rust is mature in systems programming and command-line interface (CLI) tools, yet lacks development support for graphical user interfaces (GUIs) and machine learning.
  • Adoption of Rust varies across the community, indicating that while it grows, it does not have uniform acceptance.

Performance vs. Context

  • The speaker emphasizes that Rust is an impressive technology addressing real problems at scale, with measurable performance and safety benefits.
  • Technology choices are not zero-sum; different problems require tailored solutions based on organizational context rather than just technical benchmarks.

Understanding Trade-offs

  • It's crucial to assess what specific problems need solving when considering using Rust versus other languages.
  • The decision should involve evaluating trade-offs between programming languages to determine the best fit for particular use cases.

Hype vs. Reality

  • While Rust deserves recognition for its capabilities, it's important to acknowledge that not every project requires it; some hype may be overstated.

Turn any video into a summary like this

YouTube links, meetings, lectures. With transcripts, search, and chat.

Video description

Rust is everywhere. Build, Upgrade, and Save All Month Long at Micro Center: https://micro.center/a8050d Sign-Up for VIP Days at Micro Center Phoenix: https://micro.center/477d78 Shop 50 Series Laptops at Micro Center: https://micro.center/786860 Shop Raspberry Pi at Micro Center: https://micro.center/3c0eba So everyone's rewriting everything in Rust these days. Discord rewrote their backend and got 10x performance. Dropbox spent four years rewriting their sync engine. Microsoft is putting Rust in Windows itself. But I have been so curious as to why there is *so* much hype behind Rust and why everyone's switching to it... Is Rust really *that* good or is it mostly just hype? So I decided to not only learn a good bit of Rust over the past 6 or so months, but take a look at the state of all things Rust in 2025 - what it actually is (not the hype, not the buzzwords), why people are obsessed with it (it's literally the most admired language… why?), how it compares to other languages, what the actual experience is writing Rust, and where it falls short. So that's what this video's about. A portion of this video is sponsored by Micro Center. If you're a developer, sign up to my free newsletter Dev Notes 👉 https://www.devnotesdaily.com/ If you're a student, checkout my Notion template Studious: https://notionstudent.com Don't know why you'd want to follow me on other socials. I don't even post. But here you go. 🐱‍🚀 GitHub: https://github.com/forrestknight 🐦 Twitter: https://www.twitter.com/forrestpknight 💼 LinkedIn: https://www.linkedin.com/in/forrestpknight 📸 Instagram: https://www.instagram.com/forrestpknight