Develop Concurrent Software with Go

Go is an open source programming environment that makes it easy to build simple, reliable, and efficient software. One of Go’s key design goals is code adaptability; that it should be easy to take a simple design and build upon it in a clean and natural way. Go Version 1 (or Go 1 for short), which defines a language and a set of core libraries to provide a stable foundation for creating reliable products, projects, and publications, was recently released and available for use.

Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, it is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on.