Serdar Yegulalp
Senior Writer

Google’s Go 1.6 keeps it simple and speedy

news analysis
Jan 28, 20162 mins

The latest version features performance boosts but no language changes, keeping with Google's promise of strong forward compatibility

Google Go 1.6 is now available in its first release candidate. This version of the language focuses on improving the toolchain, bolstering internal features like garbage collection, adding new ports to different architectures, and buffing the core library.

One element that hasn’t changed at all, though, is the language itself. That’s a reflection of Google’s ongoing commitment to make Go deliver much with little.

Most prior changes to Go were about handling corner cases or clarifying the use of a specific feature, not grafting in additional functionality. Not so this time around: “There are no language changes in this release,” states the Go 1.6 release document.

This isn’t so much an aberration or omission as it is Go living up to one of its goals. With all 1.x editions, Go’s maintainers have promised strong forward compatibility, meaning that software written in earlier versions of 1.x will compile and run in later versions of 1.x. The general structure of the language — including items that have sparked some controversy, such as the workings for error and exception handling — is here to stay, at least until a Go 2.x spec appears.

One big change in version 1.6 is a new garbage collection system that should give users better performance. For some time, Go’s “stop the world” garbage collector meant applications ran with noticeable pauses whenever garbage collection kicked in. Go 1.5 swapped in an all-new garbage collector that used far smaller time slices, didn’t require manual tuning on multicore systems, and benefited from being written in Go itself.

“The garbage collector’s pauses [for 1.6] are even lower than in Go 1.5,” states the release document, “although the effect is likely only noticeable for programs using a large amount of memory [such as gigabytes].” Likewise, existing Go applications are likely to enjoy a few percent improvement in speed overall by doing nothing more than being recompiled using the 1.6 toolchain.

Another ongoing improvement has been porting the Go toolchain to multiple architectures. Go 1.6 adds a 64-bit MIPS port for Linux and an experimental 32-bit x86 Android port. In time, Go could be used to write components of Android applications, in much the same way C++ today does, although a Java wrapper would still be required.

Serdar Yegulalp

Serdar Yegulalp is a senior writer at InfoWorld. A veteran technology journalist, Serdar has been writing about computers, operating systems, databases, programming, and other information technology topics for 30 years. Before joining InfoWorld in 2013, Serdar wrote for Windows Magazine, InformationWeek, Byte, and a slew of other publications. At InfoWorld, Serdar has covered software development, devops, containerization, machine learning, and artificial intelligence, winning several B2B journalism awards including a 2024 Neal Award and a 2025 Azbee Award for best instructional content and best how-to article, respectively. He currently focuses on software development tools and technologies and major programming languages including Python, Rust, Go, Zig, and Wasm. Tune into his weekly Dev with Serdar videos for programming tips and techniques and close looks at programming libraries and tools.

More from this author