DEV Community

Cover image for Why I Keep Coming Back to Go (After Trying Almost Everything Else)
Fachri
Fachri

Posted on

Why I Keep Coming Back to Go (After Trying Almost Everything Else)

I’ve tried a lot of languages in years of years building products.

Back when Node.js came out, I was all in. The event loop was mind-blowing, JavaScript everywhere was appealing, and the community energy was wild. I shipped real stuff with it. But as things got more complex, I started to feel the weight of callback hell, package chaos, and eventually TypeScript debates. It was fun, but it didn’t scale with the same simplicity.

Rails? I loved how fast I could build MVPs. Convention over configuration worked… until the abstraction layers started to leak and it became harder to trace what was actually happening under the hood. But overall, the community is still awesome, and DHH is a role model for many things for software development mind. Respect.

Elixir with Phoenix was next on my list. Super elegant. Lightweight. The actor model was fascinating. But I quickly realized it wasn’t something I could easily hire for, and maintaining it solo didn’t feel sustainable. Phoenix is somewhat using the same method like rails, but yeah it might be suited for more to a real time and heavy application.

Then I explored Rust. I respect it. A lot. But let’s be honest: I’m not building kernel modules every day. I needed something fast to ship with, not something that would slow me down with lifetime annotations just to build a basic API.

That’s when Go started to stick.

golang

I didn’t fall in love with Go because it was cool. I fell in love because it got out of my way. It’s boring in the best possible way. The syntax is so simple I barely have to think about it. There are no clever tricks, no magical metaprogramming. Just clear, type-safe, readable code. *This is what important. *

Go fails fast. If you mistype something or mess up your types, it tells you immediately. That alone saved me from so many stupid bugs. And once it compiles, I’m confident it's going to run — and run fast. There are caveats, but you will know when you are used to it.

I’ve now shipped multiple products using Go. APIs, backend services, CLIs, internal tools. Every single one has felt seamless. The tooling is first-class. The build times are ridiculously fast. Cross-compilation is easy. Deployments are predictable. And maintenance is, honestly, kind of a joy.

The ecosystem is mature too. That’s not a coincidence. Go is the language of infrastructure for a reason. Find the article or videos and understand why golang is exist at the first place.

Sure, Go isn’t perfect. Error handling can feel repetitive. And yeah, generics came late. But in practice? None of that has ever blocked me from building and shipping fast. Go just works. That’s why it’s still my default, not because it’s flashy, but because it helps me stay fast and sane as I scale.

I’m curious what others think.
Have you gone through a similar journey? What’s the language you trust the most when it’s time to ship?

Top comments (0)