Go (programming language)

''Not to be confused with [http://en.wikipedia.org/wiki/Go!_(programming_language) Go! (programming language)], an agent-based language released in 2003.''

Go, also commonly referred to as golang, is a programming language initially developed at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. It is a statically-typed language with syntax loosely derived from that of C, adding garbage collection, type safety, some dynamic-typing capabilities, additional built-in types such as variable-length arrays and key-value maps, and a large standard library.

The language was announced in November 2009 and is now used in some of Google's production systems. Go's "gc" compiler targets the Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, Plan 9, and Microsoft Windows operating systems and the i386, amd64, ARM and IBM POWER processor architectures. A second compiler, gccgo, is a GCC frontend.

History
Ken Thompson states that, initially, Go was purely an experimental project. Referring to himself along with the other original authors of Go, he states:

"When the three of us [Thompson, Rob Pike, and Robert Griesemer] got started, it was pure research. The three of us got together and decided that we hated C++. [laughter] ... [Returning to Go,] we started off with the idea that all three of us had to be talked into every feature in the language, so there was no extraneous garbage put into the language for any reason."

The history of the language before its first release, back to 2007, is covered in the language's FAQ.

Mascot
Go's mascot is a gopher (above) designed by Renée French, who also designed Glenda, the Plan 9 Bunny. The mascot is based on one French had previously drawn for a WFMU fundraiser t-shirt. The logo and mascot are licensed under Creative Commons Attribution 3.0 license.

Naming dispute
On the day of the general release of the language, Francis McCabe, developer of the Go! programming language (note the exclamation point), requested a name change of Google's language to prevent confusion with his language. The issue was closed by a Google developer on 12 October 2010 with the custom status "Unfortunate" and with the following comment: "there are many computing products and services named Go. In the 11 months since our release, there has been minimal confusion of the two languages."