COS418 Assignment Setup

Go Installation

You will need a working Go environment for the assignments.
Your version should be at least Go 1.5.
The version that the Dropbox and Grading scripts will use is Go 1.6.
The latest version as of the Fall 2017 semester is Go 1.7.

Cycles (Pre-installed)

The CS servers (cycles.cs.princeton.edu) are one option, if you have a CS account.

Courselab (Pre-installed)

We only support the below methods for using Go. For help with courselab servers see here.

Manual for Various OSes

Another option is to install Go on your own machine manually. There are instructions to install from source or with a
package installer for several operating systems at Google's Go site: golang.org.

Via Package Manager for OS X

Finally, for Macs many people use package management software, the two most common of which are
Homebrew and
MacPorts
(these links include installation instructions for the package managers themselves).
Here is a walkthrough of installing Go using each of these:

Tools

There are many commonly used tools in the Go ecosystem. The three most useful starting out are:
Go fmt and Go vet, which are built-ins, and Golint, which is similar to the splint tool you used in COS217.

Editors

For those of you in touch with your systems side (this is Distributed Systems, after all), there are quite a few resources for Go development in both emacs (additional information available here) and vim (additional resources here).

As many Princeton COS students have become attached to Sublime, here are the two indispensible Sublime packages for Go development: GoSublime and Sublime-Build. And -- learning from the ancient emacs-vi holy war -- it would be inviting trouble to offer Sublime information without likewise dispensing the must-have Atom plugin: Go-Plus (walkthrough and additional info here).