![]() Go's mascot is a gopher, designed by Renée French.
|
|
Paradigm | compiled, concurrent, imperative, structured |
---|---|
Designed by | Robert Griesemer Rob Pike Ken Thompson |
Developer | Google Inc. |
First appeared | November 10, 2009 |
Stable release |
1.8 / February 16, 2017
|
Typing discipline | strong, static, inferred, structural |
Implementation language | Go, assembly language, previously C (gc); C++ (gccgo) |
OS | Linux, macOS, FreeBSD, NetBSD, OpenBSD,Windows, Plan 9,DragonFly BSD, Solaris |
License | BSD-style + patent grant |
Filename extensions | .go |
Website | golang |
Major implementations | |
gc, gccgo | |
Influenced by | |
Alef, APL,BCPL,C, CSP, Limbo, Modula, Newsqueak, Oberon, occam, Pascal,Python, Smalltalk | |
Influenced | |
Crystal |
Go (often referred to as golang) is a free and open sourceprogramming language created at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. It is a compiled, statically typed language in the tradition of Algol and C, with garbage collection, limited structural typing,memory safety features and CSP-style concurrent programming features added.
The language was announced in November 2009. It is used in some of Google's production systems, as well as by other firms.
Two major implementations exist:
The "gc" toolchain has been self-hosting since version 1.5.
Go originated as an experiment by Google engineers Robert Griesemer, Rob Pike, and Ken Thompson to design a new programming language that would resolve common criticisms of other languages while maintaining their positive characteristics. The new language was to include the following features:
In later interviews, all three of the language designers cited their shared dislike of C++'s complexity as a primary motivation for designing a new language.
Go 1.0 was released in March 2012.
Go 1.7 added "one tiny language change" and one port to macOS 10.12 Sierra plus some experimental ports, e.g. for Linux on z Systems (linux/s390x). Some library changes apply; for example, Unicode 9.0 is now supported.