Google: Go (software language)

return to Google Standards bodies

Source: The following is from the ''Golang.ord'' site

The language is called Go. The “golang” moniker arose because the web site is golang.org, not go.org, which was not available to us. Many use the golang name, though, and it is handy as a label. For instance, the Twitter tag for the language is “#golang”. The language's name is just plain Go, regardless.Note: Although the official logo has two capital letters, the language name is written Go, not GO.Go was born out of frustration with existing languages and environments for the work we were doing at Google. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java.We were not alone in our concerns. After many years with a pretty quiet landscape for programming languages, Go was among the first of several new languages—Rust, Elixir, Swift, and more—that have made programming language development an active, almost mainstream field again.Go addressed these issues by attempting to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aimed to be modern, with support for networked and multicore computing. Finally, working with Go is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for.The article Go at Google discusses the background and motivation behind the design of the Go language/

Data Sheet for Go.

Characteristic	Value
Paradigm	Multi-paradigm: concurrent, functional,1) “First-Class Functions in Go”. Retrieved November 14, 2018. Go supports ... a functional programming style in a strongly typed language. imperative, object-oriented 2) Is Go an object-oriented language?“. Retrieved April 13, 2019. Although Go has types and methods and allows an object-oriented style of programming, there is no type hierarchy. 3) “Go: code that grows with grace”. Retrieved June 24, 2018. Go is Object Oriented, but not in the usual way.
Typing	Inferred, static, strong, structural4) “Why doesn't Go have “implements” declarations?”. golang.org. Retrieved October 1, 2015. 5) Pike, Rob (December 22, 2014). “Rob Pike on Twitter”. Retrieved March 13, 2016. Go has structural typing, not duck typing. Full interface satisfaction is checked and required.
Original author(s)	Robert Griesemer, Rob Pike, Ken Thompson
Developer	The Go Authors6) Text file LICENSE”. The Go Programming Language. Google. Retrieved October 5, 2012.
Initial release	10 November 2009
Stable release	1.12.5 / May 6, 2019;7) “Release History - The Go Programming Language”. Retrieved April 19, 2019.
Repository	https://git.kernel.org/pub/scm/git/git.git/
Written in	Go, assembly language (gc); C++ (gccgo)
Operating system	DragonFly BSD, FreeBSD, Linux, macOS, NetBSD, OpenBSD,8) “lang/go: go-1.4 – Go programming language”. OpenBSD ports. December 23, 2014. Retrieved January 19, 2015. Plan 9,9) “Go Porting Efforts”. Go Language Resources. cat-v. January 12, 2010. Retrieved January 18, 2010. Solaris, Windows
Available in	English
Type	Version control
License	BSD-style10) Text file LICENSE“. The Go Programming Language. Google. Retrieved October 5, 2012. + patent grant11) Additional IP Rights Grant”. The Go Programming Language. Google. Retrieved October 5, 2012.
Website	https://golang.org/