In August 2016, search engine giant Google released an update to one of its least-known projects. The Go programming language, which is currently on version 1.7, is being groomed to become widely used in networking applications.
Go’s history dates back to 2007, but it was formally announced in 2009; at that time, Google introduced an open source compiler. This assembly-style language is based on C and was influenced by Python; it can run as a binary on various operating systems from Windows to Linux and from OS X to FreeBSD.
An interesting feature of the Go programming language is that it offers native concurrent programming, which means that channels can be coded for the purpose of handling instructions and routines that can advance at the same time instead of waiting for others to execute.
The concurrency of Go is similar to Python; to this effect, cloud computing giant Dropbox has actually chosen go over Python for some of its critical systems. MercadoLibre.com, a major Latin American online marketplace that operates on a classified ads system uses Go for some of its application programming interfaces. Uber, the controversial provider of personal transportation services, uses Go to handle geo-fencing queries.
Internally, Google makes use of Go for projects such as Vitess, a clustering system for MySQL databases. This is a crucial system; it has been serving YouTube well since 2011.
Developers of desktop applications have not warmed up to Go too much; for this reason, the graphical user interface footprint of Go is mostly limited to Linux-friendly frameworks such as GTK and GTK3. Interestingly, one major Go project is CoreOS, a container operating system based on Linux, which aims to provide container tools for the development of networking apps and platforms.
Prior to Go 1.7, releases for this coding language were released about once per years. Thus far in 2016, Go has seen two major releases. As Google has explained, Go 2 may be developed in a few years; such a decision will be made based on what happens with Go 1.