
Hello World !
My first hello world code in Go was in 2020.

Go is getting super popular alongside Docker and Kubernetes—which makes sense since those successful tools were actually built using Go. Both Docker and K8s blew up back then because of the microservice trend, and honestly, they've pretty much become the standard nowadays for high-traffic apps.
Why Go?
Short answer: High Performance - Resource Efficient.
I've developed a ton of REST APIs in Java, both for monoliths and microservices, and there's no doubt that Java has the biggest ecosystem for backend development. It has solid frameworks that standardize how we write code, like Spring Boot and Quarkus, which totally dominate the market. The big benefit here is that devs across the company share the same mindset, making it super easy for new joiners or the next maintainers to understand the code. And honestly, Java's performance is legendary and time-tested.
But the one thing that always keeps me thinking is the amount of memory it hogs. I did a simple benchmark on my local machine and found that Go (using Gin) uses way less CPU and RAM compared to Java (with Spring Boot).
If you want a detailed comparison, just google it—plenty of people have made better benchmarks with many use cases.
After writing a lot of microservices, I also realized that not every little service needs to be built with a heavy machine gun like Spring Boot. Sometimes, a service is just an adapter, a bridge, or a simple stream consumer.
The Go Paradigm
Simple Generally, we think of two main programming paradigms: procedural and OOP. Technically, Go isn't OOP, but it kind of gives you a sense of it.
The problem with pure OOP is that developers often overthink the business logic. We constantly prepare the code for future scenarios that almost never actually happen. As a result, the codebase gets flooded with layers of abstraction. It's fine at first, but it becomes a massive pain when you're trying to debug. Personally speaking, I often get lost while debugging, nyehehe.
Go fixes this problem. The creators designed a language that looks like C but handles OOP-like tasks through a totally different paradigm. As a developer, we mostly just need a struct for almost everything. This keeps us focused on solving the immediate problem instead of getting trapped in over-engineering.
Bonus
It’s not just great for REST APIs; Go is awesome for building CLI tools too.
Since Go is a compiled language, its compiler supports cross-platform compilation out of the box. For DevOps and operations guys, there are always those small, repetitive tasks usually handled by shell scripts. But when shell scripts hit their limit, Go steps in. Writing a CLI in Go is incredibly simple and straightforward, especially if you use the Cobra framework.
Conclussion
- Go is fit for a simple - medium complexity, more than that Go could handle massive request with less resource usage.
- Java is fit for medium - complex complexity, the most advantage is Java has robust ecosystem, and most of legacy system still write in Java so it still win in term of integration with legacy system.