A while ago Google gave us a brand new language, Go. In the last couple of years I really haven’t heard much about it, but I decided to finally install it and give it a try. This tutorial will guide you step-by-step on how to install Google Go and start writing your own applications.
Go’s website has very good instructions on how to install it, and this tutorial will take many steps directly from there. Their website has instructions for all the major platforms, however this article will be specific to Mac OS X running on a 64 bit Intel processor.
Google does not distribute the binaries, which means you’ll have to build it for your own platform.
Setup Environment Variables
When you build Go, the compiler is going to need to know a few things.
export GOARCH=amd64
export GOOS=darwin
export GOBIN=$HOME/go/bin
$GOROOT is the path to where you’ll download the Google Go source code. I left mine where Google suggested, which is $HOME/go (/Users/[username]/go).
$GOARCH is the architecture you’re building for. The options are amd64, 386, or arm. The name is slightly misleading, but amd64 works for all 64bit x86 processors, and is what you’ll want to choose for Inlet 64 bit processors.
$GOOS is the operating system. The options here are darwin (for Mac), freebsd, linux, and nacl.
$GOBIN is where the output from the build will be placed. You’ll have to create this folder before building Go.
Grabbing The Go Source
Go uses Mercurial for version control. I didn’t have Mercurial installed, so I had to install it with this command.
After you have Mercurial installed, fetch the repository to your Go root.
Building Go
This step assumes you have gcc and a bunch of other crap installed. The simplest way to get these is to just install Xcode. If you’re a developer on a Mac, however, chances are you’ve already got it installed.
$ ./all.bash
When the build is complete, you’ll see something that looks like this:
The known bugs are expected and the number may vary based on the current release of Go and your architecture.
Once this is done, a compiler and a linker has been placed in the bin folder. Time to add that folder to the $PATH environment variable.
Writing Some Go Code
With your favorite text editor, create a helloworld.go file and add some Go code to it.
import "fmt"
import "time"
func main() {
var currentTime = time.LocalTime()
fmt.Printf("The current time is: %s\n", currentTime.String())
}
The compiler and linker will be called 8g and 8l. We need to now compile and link our application.
After it builds and links without errors, it’s time to run our program.
Which outputs:
And there you have it. If you own a Mac and are interested in messing with Google Go, this tutorial should get you started. Go has a pretty good sized framework that should let you do a lot of interesting things. Google uses Go internally for production systems, which I guess gives it some credibility as a mature language. Hopefully Go can gain some mainstream momentum in the future, and I’ll definitely be watching it grow.