# Go

> A simple, fast programming language from Google, built for servers and cloud tools.

- Level: Intermediate
- Topics: Software
- URL: https://tidbit.legios.com.ar/go/
- In Spanish: [Go](https://tidbit.legios.com.ar/es/go/)

**Go** (often called **Golang**, which is easier to search for) is a programming language created at Google by Robert Griesemer, Rob Pike and Ken Thompson and released as open source in 2009. They were tired of huge codebases that took ages to build and were hard to read, so they designed a small language with few features, strict formatting (`gofmt` makes everyone's code look the same) and a compiler that finishes in seconds.

A Go program compiles into a single file, a **binary**, that runs directly on the machine with no interpreter or extra libraries to install. That makes it easy to ship: copy one file to a server, or into a small Docker image, and run it. Its other signature feature is **goroutines**: very cheap tasks that run at the same time and talk through **channels**, which makes it natural to write a server that handles tens of thousands of connections at once.

That combination made Go the language of cloud infrastructure. Docker, Kubernetes, Terraform and many command-line tools are written in it, and companies like Uber, Cloudflare and Mercado Libre use it for backend services. It trades some expressiveness for simplicity: fewer clever tricks, more code that a new teammate can read on day one.

## An analogy

A well-organized professional kitchen with a short, fixed menu. Fewer dishes than a fancy restaurant, but every cook knows where everything is, orders come out fast, and many cooks can work side by side without bumping into each other.

## Keep in mind

- Created at Google, open source since 2009.
- Compiles fast into a single self-contained binary.
- Goroutines and channels make concurrent programs easy to write.
- Docker, Kubernetes and Terraform are written in Go.

## Go deeper

- [The Go programming language (go.dev)](https://go.dev/)
- [A Tour of Go](https://go.dev/tour/)
- [Go (programming language) on Wikipedia](https://en.wikipedia.org/wiki/Go_(programming_language))

## Related terms

- [Programming language](https://tidbit.legios.com.ar/programming-language/): A precise, written language people use to give instructions to a computer.
- [Google](https://tidbit.legios.com.ar/google/): The search company that gives most products away and makes its money on ads.
- [Open source](https://tidbit.legios.com.ar/open-source/): Software whose code anyone can read, use, change and share.
- [Source code](https://tidbit.legios.com.ar/source-code/): The human-readable text that programmers write and that a program is built from.
- [Compiler](https://tidbit.legios.com.ar/compiler/): A program that translates source code into instructions a computer can run directly.
- [Server](https://tidbit.legios.com.ar/server/): A computer whose job is to answer requests from other computers, all day, every day.
- [Docker](https://tidbit.legios.com.ar/docker/): The tool that made containers easy: package an app once, run it anywhere.
- [Cloud computing](https://tidbit.legios.com.ar/cloud-computing/): Renting computers over the internet instead of buying your own.
