Go

Go is a programming language created at Google and released as open source on November 10, 2009. The official language specification describes it as “a general-purpose language designed with systems programming in mind,” noting that it “is strongly typed and garbage-collected and has explicit support for concurrent programming.” Programs are built from packages whose structure is meant to make dependencies easy to manage.

The specification stresses simplicity and tooling: “the syntax is compact and simple to parse, allowing for easy analysis by automatic tools such as integrated development environments.” This focus on a small, readable language and fast builds was a deliberate reaction to the slow compilation and complexity the designers had experienced with large C++ and Java codebases.

Go’s most distinctive feature is its concurrency model. As “Effective Go” explains, the language follows the slogan “do not communicate by sharing memory; instead, share memory by communicating.” Lightweight goroutines are started with the go keyword and communicate over channels. The document is explicit about the heritage: “although Go’s approach to concurrency originates in Hoare’s Communicating Sequential Processes (CSP), it can also be seen as a type-safe generalization of Unix pipes.”

In his 2012 article “Go at Google,” Rob Pike framed the language as an answer to the difficulties of building software infrastructure at scale, where C++ and Java “lack sufficient concurrency support at the language level.” Go has since become a common choice for cloud and infrastructure software, including widely used tools written in the language.

Sources

Last verified June 7, 2026