Go Programming Language — Fundamentals
Go Programming Language — Fundamentals

Go is a programming language backed by Google. Its creators are respected figures in the software and computer science world: Robert Griesemer, Rob Pike (Plan 9, Limbo), and Ken Thompson (UNIX, B, C, UTF-8).
Development started in 2007 and the first version was released in 2009. Celebrating its 10th anniversary in 2019, Go has grown a large community — known as gophers — thanks to its simplicity, ease of learning, and strong performance characteristics.
Go is actively used by companies like Docker, Kubernetes, Google, Uber, Twitch, Adobe, Facebook, and eBay, among many others. You can find a more comprehensive list of Go users on GitHub.
One of the core design principles the Go team stands behind: they will not add any feature to the language until they are confident in both its performance and necessity. For example, Go has no generics. The team has stated that generics negatively impact code readability and performance, and that they haven’t yet found a satisfying solution — so they won’t ship it until they do. Another principle: every feature available in the first version will continue to be supported in the latest version.
This careful, disciplined approach — combined with lessons learned from other languages — has produced a lean and effective language.
A quick overview of Go:
- It is a compiled, statically typed language with a functional style.
- It has only 25 keywords — one of the smallest keyword sets of any language.
- It runs and can be developed on any OS; the compiler targets the host OS at build time. Compile times are fast.
- The compiled output is a single native binary file.
- Garbage collection is built into the language.
- Type inference is available — explicit type annotation is optional in many cases.
- It has built-in support for concurrent programming.
- It ships with its own package manager.
- Since 2014, it can run on mobile devices as well.
To start learning Go, the official Tour of Go is a great starting point. The official documentation is also comprehensive and well-written.
Go also offers an online playground where you can write and run code directly in the browser.
Here is the classic Hello World program in Go:
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World!")
}