Why we are submitting this talk? Because Go is cool and we would like to hear more about this language ;-). In this talk we would like to tell you about our experience with development of microservices with Go. Go enables devs to create readable, fast and concise code, this - beyond any doubt is important. Apart from this we would like to leverage our test driven habbits to create bulletproof software. We will also explore other aspects important for adoption of a new language.
13. • Class free, but object oriented
• Statically-typed - with elem. of duck typing
• Garbage collector
• Compiled - really fast compiler
• Open source from up to bottom (BSD license)
• Write once, run anywhere
17. package main
!
import "fmt"
!
func swap(x, y string) (string, string) {
return y, x
}
!
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
}
18. package main
!
import (
"fmt"
"math"
)
!
type Vertex struct {
X, Y float64
}
!
func (v *Vertex) Abs() float64 {
return math.Sqrt(v.X*v.X + v.Y*v.Y)
}
!
func main() {
v := &Vertex{3, 4}
fmt.Println(v.Abs())
}
39. Pros
• Standing on the shoulders of giant
• Concise and readable - maybe even fun ;-)
• Simple and powerful tooling (go run | install | …)
• Really nice dependency management
• Language spec - with promise of backward
compatibility
40. Cons
• Relatively new language
• There is still space to improve how GC works
• Not a JVM language