Google has announced an update to its Go open-source programming language. Now at version 1.1, the language has been augmented with a "race detector", which works to find concurrency bugs as well as new standard library functionality.
- The IT Manager's Guide to Deploying Social Business Software
- Have You Overlooked the Obvious? 12 Ways to Win Major Value with SharePoint Apps
- Intrusion Prevention Systems: What to Look for in a Solution
- Real results: Speeding quality application delivery with DevOps [in financial services]
Google's Andrew Gerrand of the Go Team says that among the most important updates are optimizations in the compiler and linker, garbage collector, goroutine scheduler and map implementation, as well as the aforementioned parts of the standard library.
It is likely that your Go code will run noticeably faster when built with Go 1.1, says Gerrand.
The official (but informal) Google Go blog announcement suggested that the changes to return requirements will lead to more succinct and correct programs, and the introduction of method values provides 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. We will discuss the race detector more in an upcoming article, but for now the manual is a great place to get started," stated Google.
Go is open source and distributed under a BSD-style license.
According to the language release notes, Go 1.1 keeps the promise of compatibility but adds a couple of significant (backwards-compatible) language changes. It has a long list of (again, compatible) library changes, and includes major work on the implementation of the compilers, libraries, and runtime.
"The focus is on performance. Benchmarking is an inexact science at best, but we see significant, sometimes dramatic speedups for many of our test programs. We trust that many of our users' programs will also see improvements just by updating their Go installation and recompiling," says the Go team.