Quick Thoughts Learning Go vs Rust

I recently finished a Go course and built a project with it (I posted a video about it on LinkedIn). These are some notes I had lying around from that process, comparing Go and Rust — not “which language is objectively better,” but which one made sense for me, coming from a .NET background.

Go

  • More people currently work on Go than Rust (Pragmatic Engineer 2025 survey) — bigger hiring pool, more Stack Overflow answers, easier to get unstuck.
  • Some argue Go might be easier for AI agents than Python due to not being so opinionated as Python or Javascript with many different ways to do things (source).
  • The compiler is strict in a good way: it won’t even build with an unused variable or import. For someone new to the language, that’s less “annoying” and more “the compiler is teaching me the idioms.”
  • Performance, concurrency-by-design, and easy deployment (single static binary) make it a solid pick for backend services and tooling — see dave.cheney.net on what makes Go fast.

“Leave your object-oriented brain at home. Embrace the interface.” — @mikegehard

“Learn to do things the Go way, don’t try to force your language idioms into Go.” — @DrNic

Both quotes hit home for me — my first instinct coming from C# was to reach for classes and inheritance, and Go actively pushes back on that.

Rust

  • Harder to learn well — the learning curve is real, especially around ownership and lifetimes.
  • People push for it because it’s safer by design. See The Great Refactor for the case.
  • It gives you more confidence refactoring, since the compiler catches entire classes of bugs before runtime (source).

I haven’t gone deep enough into Rust yet to have a strong personal opinion here.

My takeaway

  • It depends on concurrency vs. safety needs and your team’s experience — no surprise there.
  • Concretely, this is why I picked Go over Rust to learn first: coming from a C-family language like C#, Go’s syntax and structure felt like a much shorter on-ramp than Rust’s ownership and lifetime model.
  • If the project had demanded strict memory safety guarantees, or if I had more time to spend on the learning curve, I’d have leaned toward Rust instead.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.