[<< wikibooks] Go Programming/Print version
= 1. Introduction =

== Overview ==
Go is an open source, compiled, garbage-collected, concurrent system programming language.
Go aims to provide the efficiency of a statically typed compiled language with the ease of programming of a dynamic language.
Other goals include:

Safety: Type-safe and memory-safe.
Intuitive concurrency by providing "goroutines" and channels to communicate between them.
Efficient garbage collection "with low enough overhead and no significant latency".
High-speed compilation.Go's mascot is a gopher.

== Installing and using Go ==
Visit the Go programming download page and choose the option corresponding to your platform or operating system.

== History ==
Go was designed at Google in 2009 by Robert Griesemer, Rob Pike, and Ken Thompson.

= 2. Getting Started =

== Hello World ==
Let's start with a simple example, the venerable hello world program.

As you can see there is a lot going on here. The first line:

starts every go source file. It states which package this file belongs to. Think of a package as a bag of code, where you are going to stuff the internals of your programs into. The main package is special, and will we get into that in a moment. 

The line declares all the packages (or bags of code others have written to help us do things — also known as libraries) we are going to use. In this case, we are going to use the fmt (the format package: pronounced fa-umpt) Again, in later sections, we will delve deeper into packages.

Here we declare a function (```func```). A function is a set of instructions that we provide to the computer to get it to do what we want it to do. There are few special functions in go, and that function is the entry point of the program.