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).
What is syntax of go programming? Or Hello world program in Go?
What is workspace in Go programming?
What are the lvalues and the rvalues in Go programming?
What is variable in Go programming?
What is a string literal in Go?
What is static type declaration and dynamic type declaration of a variable in Go?
What are types in go programming?
What is a pointer in Go programming?
What is the purpose of break statement?
What is a function in go programming?
What is panic? When should panic be used?
How to delete an entry from a map in Go programming?
What is slice in Go programming?
What is range in Go programming?
What is maps in Go programming?
What is the difference between cap () and len () in go?
What is Type casting in go programming?
What is range in go programming?
Why won't $GOPATH/src/cmd/mycmd/*.go build in go programming?
What are the different built-in supports in Go programming?