Getting started

  1. Install Go.
  2. Read the tutorial.
  3. Learn the libraries.

Watch and Learn

Programming with Go. Watch now.
an experimental programming language.
Imperative, concurrent, garbage-collected.

Go is …

… simple

package main

import "fmt"

func main() {
  fmt.Printf("Hello, 世界\n");
}

… fast

Go generates fast code and, equally importantly, does it fast. It takes too long to build software. The tools are slow and are getting slower. Dependencies are uncontrolled. Machines have stopped getting faster. Yet software still grows and grows. If we stay as we are, before long software construction will be unbearably slow.

… safe

Go is type safe and memory safe. Go has pointers, but you can't perform arithmetic on them. If you want that, you use slices, which known their limits.

Clumsy type systems drive people to dynamically typed languages. Go is object orientated without type hierarchies. Casts are checked at runtime and types can be reflected upon.

… concurrent

Go provides a way to write systems and servers as concurrent, garbage-collected processes (goroutines) with support from the language and run-time. Growing stacks and multiplexing of goroutines onto threads is done automatically.