*** Welcome to piglix ***

Go programming language

Go
Golang.png
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; 7 years ago (2009-11-10)
Stable release
1.8.1 / April 7, 2017; 14 days ago (2017-04-07)
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.org
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 is recognizably in the tradition of C, but makes many changes to improve brevity, simplicity, and safety. Go consists of,

Go's syntax includes changes from C aimed at keeping code concise and readable. A combined declaration/initialization operator was introduced that allows the programmer to write i := 3 or s := "Hello, world!", without specifying the types of variables. This contrasts with C's int i = 3; and const char *s = "Hello, world!";. Semicolons still terminate statements, but are implicit when the end of a line occurs. Functions may return multiple values, and returning a result, err pair is the conventional way a function indicates an error to its caller in Go. Go adds literal syntaxes for initializing struct parameters by name, and for initializing maps and slices. As an alternative to C's three-statement for loop, Go's range expressions allow concise iteration over arrays, slices, strings, maps, and channels.


...
Wikipedia

...