Go, also called golang, is an open source programming language initially developed at Google. It is a statically-typed language with syntax loosely derived from that of C, adding automatic memory management, type safety, some dynamic-typing capabilities, additional built-in types such as variable-length arrays and key-value maps, and a large standard library.
Go is a general-purpose language designed with systems programming in mind. While created by Google employees, including Ken Thompson, Rob Pike and Robert Griesemer, Go is an open source project with a large contributor base outside of Google. It is aimed to be efficient both for development and execution with a focus on fast compilation and increasing the maintainability of large projects. Go was originally targeted at systems programming tasks such as building server/web applications, high throughput middle-ware and databases. Go has a growing ecosystem of libraries allowing it to be used for a wide variety of tasks such as developing end-user daemons, CLIs and desktop applications.
Go is expressive, concise, clean, and efficient. Its first class concurrency mechanisms make it easy to write programs that get the most out of multi-core and networked machines, while its structural type system enables flexible and modular program construction. Go compiles quickly to memory safe machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that develops like a dynamically typed, interpreted language, but performs like native code.
There are now several Go programs deployed in production inside and outside Google, as well as being supported directly by Google App Engine.
On March 28, 2012, The Go team released version 1.0, along with binary distributions.
The latest version is 1.4 released on December 10, 2014.
Go Tutorials
- A Tour of Go
- Golang Tutorials
- Effective Go
- Go Playground
- An Introduction to programming in Go
- Network programming with Go
- Go by Example
- Learn X in Y minutes - Go
- Go Style Guide
- GopherVids
- A Quick Guide to Go's Assembler
Go Books
- Programming in Go: Creating Applications for the 21st Century
- The Go Programming Language Phrasebook
- The Way To Go: A Thorough Introduction To The Go Programming Language
- Go Programming
Free Go Books
- An Introduction to Programming in Go (online)
- Go by Example (online)
- build web application with golang (Chinese, online)
- build web application with golang (Japanese, online)
- Learning Go Compiled PDF / Source
Go projects
Go Reference Documentation
Go official mailing lists
Go IRC channel
- #go-nuts on freenode.net
Online Go Compilers
- Go Playground [Official]
- Ideone
- Compile-Online