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.