December 4, 2025

Three languages enter, one thread explodes

Thoughts on Go vs. Rust vs. Zig

Rust loyalists roll eyes, Go fans preach simple, and Zig crashes the party

TLDR: A developer compared Go, Rust, and Zig by their values: simplicity, safety, and minimalism. The comments erupted—some slammed the take as shallow, others praised it, with many wishing for “Go with Rust-like features,” while several noted the author seems smitten with Zig, stoking fresh language-war debates.

In the writeup, a developer tries three coding languages—Go, Rust, and Zig—and asks what each one values. Go comes off as the no-drama tool: simple, stable, and easy to read, even if it makes you write more lines. Rust is the heavyweight champ of safety and power. Zig? The new kid with a sharp minimalist vibe.

But the real fireworks are in the comments. One user lit the fuse with, “Zig is for the C/C++ developers that really dislike Rust,” sparking a fresh round of identity crisis for Team Zig vs. Team Rust. Another came in hot with a jab that the piece was a “surface level take with a minor crush on Rob Pike,” turning the Go founder into the accidental meme of the thread. Meanwhile, a practical voice begged for a middle ground: “I really want golang but with better generics … like rust,” echoing a chorus of devs who want Go’s chill with Rust’s toys.

Amid the snark, there was praise: one commenter called it a “really good writeup without all the usual hangups,” and another noted the author is “most fascinated” by Zig—fueling speculation that Zig is having a moment. Verdict from the stands: Go is calm, Rust is intense, Zig is the wild card, and the crowd is very much not done arguing about it.

Key Points

  • The author evaluates Go, Rust, and Zig by focusing on the design values behind their trade-offs rather than feature checklists.
  • Go emphasizes minimalism and stability, historically resisting new features, adding generics only in Go 1.18 and omitting features like tagged unions and error-handling sugar.
  • Go’s slice can grow and abstracts memory placement, contrasting with Rust’s Vec<T> and Zig’s ArrayList for growth and explicit memory management.
  • Rust and Zig slices are fat pointers only, requiring separate growable structures and more explicit reasoning about memory location.
  • Go’s origin is framed as a response to C++ complexity and slow compilation at Google, aiming to be simple and accessible for most use cases, including concurrency.

Hottest takes

“Zig is for the C / C++ developers that really dislike Rust.” — echelon
“surface level take with a minor crush on Rob Pike.” — 0x457
“I really want golang but with better generics … like rust.” — dmoy
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.