Go - A language created by Google.  aka "Golang"

 

Why we use it!

  • It has a very "C" like feel.   Not surprising since it's the brainchild of Ken Thompson, Rob Pike and Robert Griesemer.   Ken & Rob harken back to the days of Bell Labs and Unix system V.
  • Go is fast in comparison to other languages.  It usually measures favorably against most languages depending on the benchmark.
  • Go has automatic memory management.
  • Go doesn't need a virtual machine such as Java.  It is compiled.
  • Go was designed for parallelism.
  • Container tools such as Docker and Kubernetes are written in Go.
  • Lots of useful packages included with the compiler to do usefull things like create a webserver.
  • Third party packages are growing exponentially.  We leverage packages like Gorilla Web Toolkit.

Basics

https://golang.org/doc/install GO getting started

https://golang.org/doc/code.html GO code basics

GOROOT = base of go language installation.

GOPATH = Place to look outside of GOROOT for source code


Resources

https://code.google.com/p/go/ - Go documentation

https://golang.org/dl/ - Go language download

https://gobyexample.com/ - Go by example

https://github.com/golang/go/wiki/Learn - Learn Go

http://learnxinyminutes.com/docs/go/ - summary

https://www.youtube.com/watch?v=XCsL89YtqCs - quick write, build, test tutorial

https://www.youtube.com/watch?v=Vlie-srOU8c - web programming

http://golang.org/doc/articles/wiki/ - wiki program example

https://www.youtube.com/watch?v=CF9S4QZuV30 - GO primer

https://www.youtube.com/watch?v=U80k7fTEqNw - Go & Angular

http://www.golangpatterns.info/home - Go language patterns

Compiler commands

What ever directory you run go program will become root.

go
 bin
 pkg
  github.com
  otherpkg
 src

 

  • go build, which builds Go binaries using only information in the source files themselves, no separate makefiles
  • go test, for unit testing and microbenchmarks
  • go fmt, for formatting code
  • go get, for retrieving and installing remote packages
  • go vet, a static analyzer looking for potential errors in code
  • go run, a shortcut for building and executing code
  • godoc, for displaying documentation or serving it via HTTP
  • gorename, for renaming variables, functions, and so on in a type-safe way
  • go generate, a standard way to invoke code generators