Go: Concurrency for Scalable Systems
Go (Golang) was created at Google and is popular for servers, CLI tools and cloud-native services. Its trademark is simple concurrency.
Goroutines
A goroutine is a lightweight thread: go function() starts it. Thousands of goroutines are normal — the scheduler distributes them over few OS threads.
Channels
Channels are typed pipes between goroutines:
ch := make(chan int)
go func() { ch <- 42 }()
value := <-chSlices and Maps
slice := []int{1,2,3}, m := map[string]int{}. Slices grow dynamically, maps return value, ok := m[key].
Interfaces
Interfaces are satisfied implicitly: a type fulfills an interface if it has the methods. This enables clean abstractions without inheritance.
Typical use cases
- Web APIs (net/http, Gin, Echo).
- CLI tools (Docker, kubectl, Hugo are written in Go).
- Network services and proxies.
See also: Programming.