T1

Go Released as Open Source — Google

SourceThe Go Authors (Wikimedia Commons) · Public domain · View on Commons ↗

Metadata

Date
Decade
2000s
Tier
T1
Sources
10
Connections
03

Go is a compiled, statically typed programming language created at Google by Robert Griesemer, Rob Pike and Ken Thompson. The project's own FAQ dates its start to 21 September 2007, when the three began sketching goals for a new language on a whiteboard, and it became a public open-source project on 10 November 2009, announced that day on Google's open-source blog. The first stable version, Go 1, with its promise that programs would keep compiling for years, followed on 28 March 2012. The language is often called "golang" after its original web address, but the FAQ is firm that its name is just Go.

DateMilestone
21 September 2007Griesemer, Pike and Thompson sketch goals on a whiteboard
January 2008Thompson starts a compiler that generates C as output
May 2008Ian Taylor independently begins a GCC front end from the draft specification
Late 2008Russ Cox joins and helps move the language and libraries from prototype to reality
10 November 2009Public open-source release
28 March 2012Go 1 and the compatibility promise
19 August 2015Go 1.5: compiler and runtime written entirely in Go; concurrent garbage collector
24 August 2018Go 1.11: modules for dependency management
15 March 2022Go 1.18: generics

2007–09: why a new language

The FAQ puts the motive bluntly: Go was born out of frustration with existing languages and environments for the work being done at Google. Programmers had to choose between efficient compilation, efficient execution and ease of programming, because no mainstream language offered all three; many were moving from C++ and Java to dynamically typed languages such as Python and JavaScript, trading safety and efficiency for ease. Go was meant to combine the ease of an interpreted, dynamically typed language with the efficiency and safety of a compiled, statically typed one, to suit networked and multicore hardware, and to build a large executable on one computer in a few seconds at most.

Build time was the sharpest pain. In his 2012 talk Go at Google, Pike describes a measurement Google's build engineers made in 2007 on a major C++ binary: about two thousand files totalling 4.2 megabytes became more than 8 gigabytes of compiler input once the #includes were expanded — roughly 2,000 bytes for every source byte. Pike also passes on what he calls Go's "origin myth", that the language was conceived during one of the 45-minute builds such programs needed. He is equally clear about what Go was not: "Go's purpose is therefore not to do research into programming language design; it is to improve the working environment for its designers and their coworkers."

Two of the designers came from Bell Labs. Thompson had written the first UNIX and the B language that led to C, and Pike had worked alongside him there.

10 November 2009: the release

The announcement on the Google Open Source Blog, signed by Griesemer, Pike, Thompson, Ian Taylor, Russ Cox, Jini Kim and Adam Langley, pitched Go as "a great language for systems programming with support for multi-processing, a fresh and lightweight take on object-oriented design". It promised that "Typical builds feel instantaneous; even large binaries compile in just a few seconds", and that the compiled code ran close to the speed of C.

The features that defined Go were in place from the start:

FeatureWhat it does
GoroutinesLightweight concurrent functions, cheap enough to start by the thousand
ChannelsTyped pipes for goroutines to communicate and synchronise
InterfacesSatisfied implicitly — a compositional rather than hierarchical type system
Garbage collectionAutomatic memory management in a systems language
Explicit dependenciesRigid rules for imports, so builds stay fast

2012: Go 1 and the promise not to break things

Go 1, released on 28 March 2012, turned an experiment into a platform. Its announcement made the guarantee that has shaped the language since: "People who write Go 1 programs can be confident that those programs will continue to compile and run without change, in many environments, on a time scale of years." That promise is why later changes arrived slowly and cautiously.

Two later releases mark the language growing up. Go 1.5, in August 2015, removed C from the toolchain entirely — "The compiler and runtime are now written entirely in Go (with a little assembler)" — and made the garbage collector concurrent, with stop-the-world pauses that the release notes say would almost always be under 10 milliseconds. Go 1.18, in March 2022, added the most requested feature of all; its release post says that supporting generics "has been Go's most often requested feature".

Go and the cloud

Go's strongest foothold turned out to be the infrastructure of the cloud. The Go project's own page on cloud and network services describes Kubernetes as an open-source container-orchestration system written in Go, lists Docker among the platforms built with it, and states that over 75 percent of projects in the Cloud Native Computing Foundation are written in Go. Its influence reached beyond its own users: in March 2025 Microsoft announced that the next major version of TypeScript's compiler was being ported to Go. The FAQ, for its part, places Go among the first of several new languages — Rust, Elixir, Swift — that made programming-language design an active field again.

Go's place among other languages is on the programming-languages timeline, and its role in infrastructure on the cloud timeline. The project began at Google.

Questions this page answers

Who created Go, and when?
Robert Griesemer, Rob Pike and Ken Thompson at Google. By the official FAQ, they began sketching goals on a whiteboard on 21 September 2007, and Go became a public open-source project on 10 November 2009. The stable Go 1 followed on 28 March 2012.
Why did Google create a new language?
By the FAQ's account, no mainstream language offered efficient compilation, efficient execution and ease of programming together. Pike cites a 2007 measurement of a C++ binary whose 4.2 MB of source became more than 8 GB of compiler input once includes were expanded.
Is the language called Go or golang?
Go. The name golang spread because the original website was golang.org.
When did Go get generics?
In Go 1.18, released on 15 March 2022. Its announcement called generics Go's most often requested feature.

Sources

  1. PrimaryHey! Ho! Let's Go! — Google Open Source Blog, November 10, 2009

    The 10 November 2009 announcement, its signatories, the systems-programming pitch and build speed

    Accessed 2026-10-05

  2. PrimaryFrequently Asked Questions (FAQ) — The Go Programming Language

    The 21 September 2007 start, the 2008 history, the motivation, and the golang name

    Accessed 2026-10-05

  3. PrimaryPike, R. (2012). Go at Google: Language Design in the Service of Software Engineering

    The 2007 C++ build measurement (4.2 MB to over 8 GB), the 45-minute-build origin myth, and not a research language

    Accessed 2026-10-05

  4. PrimaryGo 1.5 Release Notes

    Accessed 2026-10-05

  5. PrimaryRelease History — The Go Programming Language

    Accessed 2026-10-05

  6. PrimaryGo for Cloud & Network Services — go.dev

    The Go project's statements that Kubernetes is written in Go and over 75 percent of CNCF projects are

    Accessed 2026-10-05

  7. TertiaryGo (programming language) — Wikipedia

    Accessed 2026-08-08

Last updated:

Share