Google’s Go open-source programming language has just been updated to Version 1.1, bringing developers new capabilities and performance improvements such as a race detector for finding concurrency bugs and new standard library functionality.
Details about the new Go 1.1 were released May 13 in a post by Andrew Gerrand of the Go Team on the Google Open Source Blog. “Since the release of Go 1.0 in March last year, the ‘gophers’— a team at Google and hundreds of contributors from the open source community—have been hard at work” creating a follow-up version that would increase performance and bring key refinements, wrote Gerrand.
Go 1.1 comes 14 months after the release of the original 1.0 version in March 2012. There had been two minor “point releases” in between, but they fixed only critical issues and didn’t amount to a reworking of the application, wrote Gerrand in a May 13 supplemental post on The Go Programming Language Blog.
The new version includes significant performance-related improvements, he wrote, including optimizations in the compiler and linker, garbage collector, goroutine scheduler, map implementation and parts of the standard library. “It is likely that your Go code will run noticeably faster when built with Go 1.1,” wrote Gerrand.
Several minor changes were also made to the language itself, he wrote, including changes to return requirements that will lead to more succinct and correct programs, and the introduction of method values to provide an expressive way to bind a method to its receiver as a function value. “Concurrent programming is safer in Go 1.1 with the addition of a race detector for finding memory synchronization errors in your programs,” according to Gerrand.
Go 1.1 remains compatible with Go 1.0, and all users are now advised to move over to the new release, according to the post.
An online tour of what Go is about and how to use it is available at the Go programming Website.
Go is an open-source programming environment that makes it easy to build simple, reliable and efficient software, according to Google. There are Go binary distributions available for
Linux, Mac OS X, Windows and more platforms.
The Go project was launched in 2009 as a fast, productive and fun “experimental” programming language for developers that looked to combine the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++, according to an earlier eWEEK report.
In an essay called “Go at Google: Language Design in the Service of Software Engineering,” Rob Pike, a Google engineer, wrote in 2012 that Go “was conceived in late 2007 as an answer to some of the problems we were seeing developing software infrastructure at Google.”
Those complications included multicore processors, networked systems, massive computation clusters and Web programming that had to be addressed, wrote Pike. “Moreover, the scale has changed: today’s server programs comprise tens of millions of lines of code, are worked on by hundreds or even thousands of programmers, and are updated literally every day,” he wrote. “To make matters worse, build times, even on large compilation clusters, have stretched to many minutes, even hours.”
To combat those issues, “Go was designed and developed to make working in this environment more productive,” wrote Pike. “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.”