Golang
Go: A Language With Only 25 Keywords — and Why That's the Point
Go has about 25 reserved keywords. C++ has over 90. That's not trivia — it's the whole design philosophy: fewer ways to do the same thing, so any engineer can read unfamiliar Go code and understand it in minutes, not days.
What Go actually is
Go is a compiled, statically-typed language built at Google in 2007, designed for systems and scalable services. It compiles to a single static binary — no runtime to install, no dependency resolution at deploy time, just copy the file and run it.
Concurrency is built into the language, not bolted on
Most languages treat concurrency as a library. Go treats it as a primitive:
go longRunningTask() // runs in background immediately
fmt.Println("this runs without waiting")Goroutines are lightweight enough that spinning up thousands on one machine is routine, not a performance concern. Channels let goroutines communicate without manual locking, following Go's own mantra: "Do not communicate by sharing memory; share memory by communicating."
Why the binary matters more than it sounds like it should
A Go build produces one static binary with its dependencies compiled in. In practice: no "works on my machine" runtime mismatches, no JVM or Node runtime to install on the server, and Docker images small enough to measure in megabytes instead of hundreds of them.
Where it actually earns its place
| Good fit | Why |
|---|---|
| Cloud infrastructure | Docker, Kubernetes, and Terraform are all written in Go |
| Microservices | Small footprint, fast cold starts |
| Network tools | Proxies, load balancers, API gateways |
| Poor fit | Why |
|---|---|
| Quick scripts | The compile step and verbosity add friction Python doesn't have |
| Monolithic UI apps | Go has no real UI framework story |
Quick recall
- ~25 keywords vs. C++'s 90+ — the core bet is readability over expressiveness
- Goroutines + channels: concurrency is a language primitive, not a library
- Compiles to one static binary — no runtime needed on the server
- Best fit: infra, microservices, network tools. Worst fit: scripts, UI apps
If you're starting from zero, the official Tour of Go is still the fastest way in — interactive, runs in the browser. If you're weighing Go against Node for a specific service, that trade-off is its own note.
Quick quiz
1. What's Go's core design bet, reflected in having ~25 keywords vs. C++'s 90+?
2. What is Go's own mantra for concurrency?
3. Where does Go fit poorly?