Programming languages: Go just received its biggest update ever

Go 1.18 marks the culmination of over a decade of design and delivers the features most demanded by developers, says Google. Here's what's new.
Written by Owen Hughes, Senior Editor
Image: skynesher/Getty

Google has announced a "milestone" update to the Go programming language with the launch of Go 1.18, which introduces native support for fuzz testing – the first major programming language to do so.

As Google explains, fuzz testing or 'fuzzing' is a means of testing the vulnerability of a piece of software by throwing arbitrary or invalid data at it to expose bugs and unknown errors.

This adds an additional layer of security to Go's code that will keep it protected as its functionality evolves – crucial as attacks on software continue to escalate both in frequency and complexity.

SEE: Developer jobs and programming languages: What's hot and what's next

"At Google we are committed to securing the online infrastructure and applications the world depends upon," said Eric Brewer, VIP infrastructure at Google.

"A critical aspect of this is being able to understand and verify the security of open-source dependency chains. The 1.18 release of Go is an important step towards ensuring that developers are able to build the most secure applications, understand risk when vulnerabilities are discovered, and reduce the impact of cybersecurity attacks." 

While other languages support fuzzing, Go is the first major programming language to incorporate it into its core toolchain, meaning – unlike other languages – third-party support integrations aren't required.

Go 1.18, which Google touts as "the culmination of over a decade of design", delivers a number of significant updates to the programming language that have long been requested by developers.

Google is also making much of the language's new support for generic code using parameterized types, which has been the feature most requested by Go users.

Without support for generics, Go users have to repeat similar code for each data type they use, said Steve Francia, Google's product and strategic lead for Go.  

"With generics, users can consolidate that code into a single routine while retaining the safety," Francia told ZDNet. "In addition, users are getting more readable and higher-performing code with the same type of safety that Go has always provided. It's a significant 'boon' to productivity and performance."

Rounding out the additions to the Go 1.18 programming language are module workspaces that enable developers to work across multiple components in a single repo, as well as a respectable 20% performance improvement on ARM64 and Apple M1 processors.

SEE: Google Go programming language: What developers like and don't like right now

Google created Go in 2007 and was designed specifically to help software engineers build secure, open-source enterprise applications for modern, multi-core computing systems.

More than three-quarters of Cloud Native Computing Foundation (CNCF) projects, including Kubernetes and Istio, are written in Go, says Google. According to data from Stack Overflow, some 10% of developers are writing in Go worldwide, and there are signs that more recruiters are seeking out Go coders in their search for tech talent.

"Many key projects shaping the future of cloud-native and containerized application development have been built using Go, including Kubernetes, Docker, and Etc," explained Francia.

"Although we have a dedicated Go team at Google, we welcome a significant amount of contributions from our community. It's a shared effort, and with their updates we're helping our community achieve Go's long-term vision.

Editorial standards