Go is a general-purpose programming language with a clean syntax and advanced features, including concurrency. It is a created at Google in 2009 by Robert Griesemer, Rob Pike, and Ken Thompson that aims to simplify systems programming and to make programming fun again. 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 compiler and other language tools originally developed by Google are all free and open source.
Go programming is not what you think it is. It is not Java and Ruby. It is not trying to be a language theorist’s dream. Go is not about type hierarchies. It is not about object-oriented programming or functional programming. Honestly, it has little to recommend it if you’re looking for something fashionable with all the buzzwords attached. Go’s purpose is therefore not to do research into programming language design; it is to improve the working environment for its designers and their coworkers. Go is more about software engineering than programming language research. Or to rephrase, it is about language design in the service of software engineering. (Reference: Rob pike)
Go is a compiled programming language, which means source code is translated into a language that your computer can understand. Therefore before we can write a Go program, we need the Go compiler.
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:
- Google’s Go compiler, “gc”, developed as open-source software. It targets various platforms including Linux, OS X, Windows, various BSD and UNIX versions, and also (since 2015) mobile devices (including smartphones).
- A second compiler, “gccgo”, is a GCC frontend.
Google released Go 1.0 in March 2012. Each major Go release is supported until there are two newer major releases. For example, Go 1.8 is supported until Go 1.10 is released, and Go 1.9 is supported until Go 1.11 is released. Iit fix critical problems, including critical security problems, in supported releases as needed by issuing minor revisions (for example, Go 1.9.1, Go 1.9.2, and so on). Go 1.9 is a major release of Go. Current release is Go 1.13.4 ( October 31, 2019).