Go 1–The First Major Release of the Google Go Language
Go has reached the first major release, Google promising it will be stable for the years to come. YouTube uses Go in their core infrastructure.
Announced in November 2009, Google Go has reached the first major milestone: Go Version 1, or Go 1. After 2 years of working on its specifications and stability, Google says that Go is ready for adoption and any Go 1 program will be compiled and run without changes with future point releases of the language for years to come. Compatibility is to be maintained at source code level and may require recompilation between point releases. Major releases, such as Go 2, may break the compatibility even at source code level when the specs may need to change, for example due to security reasons. Go 1 and the Future of Go Programs explains the Go compatibility issues developers may have in the future and how to prevent them. Programs written prior to this release can be automatically updated to run with Go 1 using the go fix tool.
Currently, Go 1 programs can run on Linux, FreeBSD, Mac OS X and Windows, the standard distribution including compilers for x86, AMD-64 and ARM CPUs. A PowerPC compiler is in the works.
The App Engine SDK 1.6.4 has been updated to support Go 1 running on Linux and Max OS X platforms, both 32 and 64 bit. Google has been using Go internally but without offering many details until recently. Andrew Gerrand, a Google Engineer, declared that YouTube uses Go in “their core infrastructure, serving more than a billion requests per day with this service alone.” Also, Vitess, a Google project meant to help scaling up MySQL, is written in Go.
Some users of Go are: Canonical uses Go for their backend infrastructure, Atlassian uses Go for provisioning and monitoring test servers, Doozer, an open source consistent and distributed data store is implemented in Go and run on Heroku, , and others. Nonetheless, the language has not gained minimal adoption and it just dropped from Tiobe’s Top 50 Languages this month which poses significant questions regarding its future.
Go is a compiled static language meant to replace native languages such as C and C++ by having a simpler syntax, fast execution time and cross-platform support. The Tour of Go interactively shows its basic features.
A fun blog about Go programming language.
Shane Hastie on Distributed Agile Teams, Product Ownership and the Agile Manifesto Translation Program
Shane Hastie Apr 17, 2015