Most developers who use the Google-backed Go programming language still love using it, but lament the missing features and choice of libraries available with Python.
The Go team surveyed 11,840 developers for its 2021 Go Developer Survey and found 54% were "very satisfied" with the state of the language while 38% said they were "somewhat satisfied". However, as Google user experience research Alice Merrick notes, the face that 92% of respondents overall were at least "somewhat satisfied" with Go is consistent with past surveys.
The research found the chief reasons holding developers back from using Go are its missing features (39%) and lack of library support (34%) – the latter being a key strength of Python.
SEE: Software development is changing again. These are the skills companies are looking for
Yet the timing of this year's survey perhaps doesn't reflect what developers might think of Go right now, following its version 1.18 release in March; the survey was taken between October 26 and November 16, 2021.
In past years, by far the most common reason developers avoided Go was that it didn't support 'generics', which made it inefficient to write code for different data types.
But as of version 1.18, Steve Francia of Google's Go team explained at the time, "users can consolidate that code into a single routine while retaining the safety. 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."
This year's survey also found generics was the most common critical missing feature, but Merrick expects attitudes to change by next year's survey. Generics also has an impact on the second biggest obstacle to Go adoption, which is its type system. The Go team is unlikely to change the type system until it sees how developers fare with its generics support.
"We would like to see how introducing generics may influence or resolve underlying needs around Go's type system before making additional changes," said Merrick.
However, the survey does highlight that Rust, which is being backed by AWS, Google, and Microsoft, is Go's biggest competitor. Asked what language developers chose instead of Go for a project, 25% said it was Rust, 17% chose Python, 12% chose Java, 8% chose TypeScript, and 8% chose C#.
"Rust, Python, and Java are the most common choices. Rust and Go have complimentary feature sets, so Rust may be a good option for when Go doesn't meet feature needs for a project," notes Merrick.
"The primary reasons for using Python were missing libraries and existing infrastructure support, so Python's large package ecosystem may make it difficult to switch to Go."
SEE: Worried your developers will quit? These are the 5 things that coders say keep them happy at work
According to this year's survey, Microsoft's VS Code remains the most popular code editor for Go users, followed by IntelliJ.
The order of major cloud providers that Go users deploy to is different to other surveys, which usually put AWS in first place, followed by Azure, with Google Cloud Platform (GCP) catching up. In the Go developer survey, AWS led with 43%, followed by company-owned servers with 41%, then GCP at 25%, and Azure at 12%.
The Go developers survey did turn up some notable trends in container tech and Kubernetes. Today, 35% of respondents deploy Go applications to AWS Elastic Kubernetes Service, up from 30% in the previous year. But only 41% deploy Go programs to an AWS virtual machine, down from 48% in each of the past two years.