Introduction to Go
Go (often called Golang) is a compiled, garbage-collected language designed at Google with one guiding principle: simplicity. It has a small, deliberately minimal set of language features — no classes, no exceptions, no generics-heavy abstractions by default — which keeps codebases easy to read even as they grow.
Go code compiles directly to a native binary, and it compiles fast — one of the language's standout traits. The compiler checks every type before your program runs, so a type mismatch is caught immediately as a build error, not a surprise at runtime.
Why Go's simplicity matters
- Fast compilation — Go was built in part to solve painfully slow build times at scale, and it still compiles large codebases in seconds
- Easy to read — a small set of language features means Go code written by different people tends to look remarkably similar, which makes large codebases easier to navigate
- Built-in concurrency — goroutines and channels are part of the language itself, not a bolted-on library, making concurrent code a first-class citizen
- A single official formatting style — gofmt means there's no debate about code style; every Go codebase is formatted the same way
A quick preview
Here's a real Go program, executed for real on this page's own compiler — not a mockup:
package main
import "fmt"
func main() {
message := "Hello from Go!"
fmt.Println(message)
}Hello from Go!
That's it — a variable, assigned with :=, printed with fmt.Println. The next lesson runs your first full program and explains exactly what's happening.
Practice exercise
Declare a variable version := 5, then print "Go version:" followed by version using fmt.Println("Go version:", version).