The Go programming language was conceived in late 2007 as an answer to some of the problems we were seeing developing software infrastructure at Google. … Go was designed and developed to make working in this environment more productive. Besides its better-known aspects such as built-in concurrency and garbage collection, Go's design considerations include rigorous dependency management, the adaptability of software architecture as systems grow, and robustness across the boundaries between components.