![]() | |
Paradigm | Multi-paradigm: concurrent imperative, functional[1] object-oriented[2][3] |
---|---|
Designed by | Robert Griesemer Rob Pike Ken Thompson[4] |
Developer | The Go Authors[5] |
First appeared | November 10, 2009 |
Stable release | 1.24.3
/ 6 May 2025 |
Typing discipline | Inferred, static, strong,[6] structural,[7][8] nominal |
Memory management | Garbage collection |
Implementation language | Go, Assembly language (gc); C++ (gofrontend) |
OS | DragonFly BSD, FreeBSD, Linux, macOS, NetBSD, OpenBSD,[9] Plan 9,[10] Solaris, Windows |
License | 3-clause BSD[5] + patent grant[11] |
Filename extensions | .go |
Website | go |
Major implementations | |
gc, gofrontend | |
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 is a high-level general purpose programming language that is statically typed and compiled. It is known for the simplicity of its syntax and the efficiency of development that it enables by the inclusion of a large standard library supplying many needs for common projects.[12] It was designed at Google[13] in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson, and publicly announced in November of 2009.[4] It is syntactically similar to C, but also has memory safety, garbage collection, structural typing,[7] and CSP-style concurrency.[14] It is often referred to as Golang to avoid ambiguity and because of its former domain name, golang.org
, but its proper name is Go.[15]
There are two major implementations:
A third-party source-to-source compiler, GopherJS,[21] transpiles Go to JavaScript for front-end web development.
Go supports first class functions, higher-order functions, user-defined function types, function literals, closures, and multiple return values. This rich feature set supports a functional programming style in a strongly typed language.
Although Go has types and methods and allows an object-oriented style of programming, there is no type hierarchy.
Go is Object Oriented, but not in the usual way.
Go has structural typing, not duck typing. Full interface satisfaction is checked and required.
The language is called Go.
The compiler and runtime are now implemented in Go and assembler, without C.
gccgo, the GNU compiler for the Go programming language
Gollvm is an LLVM-based Go compiler.
© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search