Get AI summaries of any video or article — Sign up free
I Will Not Write Rust Again thumbnail

I Will Not Write Rust Again

The PrimeTime·
5 min read

Based on The PrimeTime's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.

TL;DR

Rust’s enums, safety, performance, and serialization/deserialization are praised, but the author says the act of writing Rust is not enjoyable enough to continue.

Briefing

The core message is blunt: the author says they’re done rewriting in Rust and don’t plan to return, even while praising Rust’s best features. Rust’s tooling and capabilities—especially enums, safety, performance, and conveniences like serialization/deserialization—still earn admiration. But the day-to-day experience of writing Rust is described as something they simply don’t enjoy, and that dislike outweighs the language’s technical strengths.

That tension drives the search for a replacement language. The transcript highlights a preference for tagged unions (the Rust enum pattern) because they map well to server workloads where incoming data includes a type discriminator and the payload varies accordingly. The author also contrasts this with other ecosystems: TypeScript is popular for heterogeneous server data, Go is “a huge pain” for that style of heterogenous modeling, yet the author still likes writing Go. They even cite a year of Go work, including building a Doom-style multiplayer game with thousands of players and using Go for game control alongside Zig.

The next step, they say, is to try something new in 2025—most likely Zig. The pitch for Zig centers on metaprogramming and the idea of “comptime” as more straightforward than Rust’s macro ecosystem. Instead of learning separate macro syntax and wrestling with multiple language layers, Zig keeps metaprogramming inside the same language, which the author frames as a productivity advantage. They also argue that manual memory management in Zig feels more honest and enjoyable than Rust’s approach, which they describe as forcing developers to contort code to avoid manual memory management—through lifetimes and other constraints. The comparison is intentionally emotional: Rust’s safety mechanisms are portrayed as a trade that removes the “raw” satisfaction the author associates with lower-level programming.

To explain that “raw” pull, the transcript reaches back to the author’s past love for C and hardware-adjacent work: building custom network protocols, writing flash drivers, manipulating registers, controlling motors, handling camera image capture, and even writing semaphore-style synchronization. That history becomes the lens for why Zig might fit—because it could recreate the feeling of direct control and engineering joy.

There’s also a social proof angle. The author claims to respect Hashimoto (Mr Hashimoto) and points to the presence of Zig in teams shipping high-performance products used by large numbers of people. They contrast this with what they perceive as fewer Rust deployments at similar scale, while noting Go’s broader adoption.

Finally, the transcript leaves room for uncertainty. The author admits they might still end up sticking with Go, but insists they won’t rewrite in Rust again. The closing is a single-take, no-nuance declaration: they’re out, and they’re moving on—possibly to Zig, possibly to something else, but away from Rust.

Cornell Notes

The transcript is a personal but technically grounded decision: the author is stepping away from Rust despite liking its features. Rust’s enums, safety, performance, and serialization conveniences are praised, yet the author says the writing experience itself isn’t enjoyable enough to keep using it. The search for a replacement focuses on 2025, with Zig emerging as the leading candidate because its metaprogramming (comptime) stays within one language and because manual memory management feels more straightforward than Rust’s lifetime-driven constraints. The author also connects this choice to an earlier “high” from writing low-level C for hardware and systems work, suggesting Zig may better recreate that direct engineering feel.

Why does the author still like Rust’s capabilities while refusing to keep using it?

They separate Rust’s feature set from the lived experience of writing it. Rust’s enums (tagged unions), safety/performance, and practical conveniences like serialization/deserialization are described as genuinely excellent. Still, the author says they “just don’t like writing things in Rust,” and that preference is decisive: if the workflow feels wrong, the language doesn’t get to win on technical merits alone.

What role do tagged unions/enums play in the author’s language preferences?

Tagged unions are framed as a solution to server-side heterogenous data problems: incoming requests often include a type string/discriminator, while the payload varies based on that type. The author links this to why TypeScript is popular for server work with mixed shapes of data. They also note that Go can be painful for this style, even though they personally still like writing Go.

What makes Zig attractive compared with Rust in the author’s view?

Zig’s metaprogramming and comptime are presented as simpler and more integrated. The author argues that Zig avoids the need to learn separate macro syntax layers (and multiple versions of a language) by keeping macros and the language itself aligned. They also claim Zig’s approach to memory feels more natural: they enjoy manual memory management and don’t see Rust’s lifetime/constraint-heavy model as a “bonus” that they want to live inside.

How does the author’s past C experience shape the decision?

The transcript ties the choice to earlier enjoyment of low-level, direct control work in C: custom network protocols, flash driver development, register manipulation, motor control, camera/image capture, and semaphore-like synchronization. That history is described as a “high” the author has been chasing for years, and Zig is positioned as a possible way to regain that feeling of raw engineering joy.

What evidence does the author cite for Zig’s real-world viability?

They mention respecting Hashimoto and point to Zig being used by teams shipping high-performance products with large user bases (thousands to tens of thousands). They also contrast their perception of Rust’s adoption in that specific “shipping at scale” sense, while saying Go has more visible presence.

Review Questions

  1. What specific Rust features does the author praise, and which part of Rust’s workflow do they reject?
  2. How does the author connect tagged unions to server-side heterogenous data modeling?
  3. Why does comptime/metaprogramming integration matter to the author’s productivity preferences?

Key Points

  1. 1

    Rust’s enums, safety, performance, and serialization/deserialization are praised, but the author says the act of writing Rust is not enjoyable enough to continue.

  2. 2

    Tagged unions are highlighted as a strong fit for server workloads where payload structure varies by a type discriminator.

  3. 3

    The author claims Go is still enjoyable to write, even though they consider it awkward for heterogenous data modeling compared with languages like TypeScript.

  4. 4

    Zig is favored for comptime-based metaprogramming because it keeps macros within the same language rather than requiring separate syntax layers.

  5. 5

    Manual memory management is described as more appealing in Zig than Rust’s lifetime-driven constraints used to avoid manual memory management.

  6. 6

    The decision is influenced by earlier low-level C work (drivers, register control, synchronization), which the author says they want to recapture.

  7. 7

    Despite leaning toward Zig for 2025, the author leaves open the possibility of staying with Go—just not returning to Rust.

Highlights

The author’s refusal to rewrite in Rust is driven less by missing features and more by a dislike of the day-to-day writing experience.
Zig’s comptime is pitched as a productivity win because metaprogramming lives in the same language, avoiding separate macro learning overhead.
Rust’s lifetime and constraint model is portrayed as contortions that remove the “raw” satisfaction the author associates with low-level systems programming.
A long C background—protocols, drivers, register work, motor control, and semaphores—functions as the emotional blueprint for why Zig might fit.

Topics

  • Rust Rejection
  • Zig Comptime
  • Tagged Unions
  • Manual Memory Management
  • Go vs Rust
  • Low-Level C Experience

Mentioned

  • Hashimoto