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.
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
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
What ever directory you run go program will become root.
- 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