Skip to content

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.