Go (programming language)

Go
ParadigmMulti-paradigm: concurrent, imperative, functional, object-oriented
Designed byRobert Griesemer
Rob Pike
Ken Thompson
DeveloperGoogle and contributors
First appearedNovember 10, 2009 (2009-11-10)
Stable release
1.27.1 Edit this on Wikidata / 1 September 2026 (1 September 2026)
Typing disciplineInferred, static, strong, structural, nominal
Memory managementGarbage collection
Implementation languageGo, Assembly language (gc); C++ (gofrontend)
OSDragonFly BSD, FreeBSD, Linux, macOS, NetBSD, OpenBSD, Plan 9, Solaris, Windows
License3-clause BSD + patent grant
Filename extensions.go
Websitego.dev Edit this at Wikidata
Major implementations
gc, gofrontend, gold
Influenced by
C, Oberon-2, Limbo, Active Oberon, communicating sequential processes, Pascal, Oberon, Smalltalk, Newsqueak, Modula-2, Alef, APL, BCPL, Modula, occam
Influenced
Crystal, V

Go (often referred to as Golang) is a high-level, general-purpose programming language that is statically typed and compiled. Originally designed in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson, Go was publicly announced in November 2009, and is developed by Google and community contributors. Go has a simple syntax similar to C++, as well as garbage collection, structural typing, CSP-style concurrency, and a broad standard library.

There are two major implementations:

  • The original, self-hosting compiler toolchain, initially developed inside Google;
  • A frontend written in C++, called gofrontend, originally a GCC frontend, providing gccgo, a GCC-based Go compiler; later extended to also support LLVM, providing an LLVM-based Go compiler called gollvm.