2016 was the year of Go, with many open-source projects gaining significant attention, and numerous companies started to adopt it.
Go jumped from #54 to #13 on the TIOBE index in January 2017, earning the title of TIOBE programming language of the year 2016.
Here at AOE, we rely on several services written in Go on a daily basis, such as Mattermost, Docker, Consul, and Kubernetes. Moreover, more and more applications, like GitLab, are incorporating Go-based services to handle heavy workloads.
Go, as a programming language, offers several compelling features, including native support for concurrency (goroutines), statically compiled binaries with a minimal memory footprint, cross-compiling, and more. One significant advantage of Go is its shallow learning curve, enabling developers from more dynamic languages such as PHP to become proficient in a short time.
If you're interested in getting a feel for Go, you should start with the online tour. Within a day, you'll gain a good understanding of the core concepts, syntax, etc. This is partly because the language often provides only one simple way of doing things; an example of this is the defined code formatting and styling (though not enforced as in Python). Additionally, Go itself is very opinionated; for instance, composition is the preferred way of defining data structures for object-oriented programming in Go, and some developers may miss advanced concepts such as inheritance.
Currently, we use Go for projects and microservices where we require flexibility and performance.