What Go Is
Scope: what the language is, where it's used, and whether it's worth your time. Not a tutorial — that starts with Your First Program.
The one-sentence version
Go is a compiled language designed at Google for writing servers and tools: fast to build, fast to run, and deliberately simple.
The problem it solves
In 2007, Google engineers were frustrated: C++ took forever to compile, and large codebases had become hard to read and maintain. They wanted a language that:
- Compiles in seconds, not minutes
- Runs fast (compiled to machine code, garbage-collected)
- Stays small enough to hold in your head
- Makes concurrency (doing many things at once) easy
The result was Go: a language with about 25 keywords (Python has 35, and most are rarely used in Go's case too) that builds network servers, CLIs, and cloud tools.
Where Go actually lives
- Cloud infrastructure: Docker, Kubernetes, Terraform, and Prometheus are all written in Go. If you touch DevOps tooling, you're touching Go.
- Servers and APIs: fast HTTP services; Go's standard library has networking built in.
- CLIs:
hugo(static sites),gh(GitHub's CLI),fzf(fuzzy finder) — small, fast, single-binary tools. - Networking: Cloudflare and many CDNs/proxies use Go for high-connection-count services.
Go compiles to a single binary — one file, no interpreter to install, no dependencies to ship. That's why it's the default for tools you download and just run.
What Go is not
- Not a scripting language. It's compiled. The edit-build-run cycle is fast (seconds), but there's no REPL-style tinkering like Python.
- Not feature-rich. No exceptions, no classes, no inheritance, no operator overloading. Generics arrived in 2022 and are used sparingly. If you want expressive type gymnastics, look at Rust.
- Not the fastest possible. Garbage-collected, so it won't beat hand-tuned C or Rust in raw benchmarks. It trades a little speed for a lot of simplicity.
- Not great for GUIs or games. The ecosystem is thin there; that's not what it's for.
Should you learn it?
Worth it if you:
- Work in DevOps, SRE, or cloud — you'll read Go constantly
- Build servers, APIs, or CLI tools
- Want a "second language" that's quick to pick up after Python
Probably overkill if you:
- Only write short scripts (Python stays king there)
- Need maximum performance or hardware control (that's Rust/C)
- Want deep type-system features to explore
Check
You can explain, in your own words:
- [ ] Why Go compiles to a single binary and why that matters
- [ ] One place Go is used in the real world
- [ ] One thing Go deliberately doesn't have
Next: Installing Go.