On March 9, Golang released the results of their Golang 2020 developer survey. The survey, which polled approximately 10,000 developers who use the Go programming language their feedback on the Google-backed language.
Go has been used at AWS, Netflix, American Express, Salesforce, Stripe, Twitter, Uber, and Dropbox among others. According to developer analyst RedMonk’s Q1 2021 language rankings, Go is currently the 16th most popular language, according to RedMonk, but it also dropped one spot from their July 2020 ranking.
According to the survey, the tech sector showed the strongest growth in adoption of the language. Go’s presence here rose from 43% in 2019 to 46% in 2020. By contrast, the media and gaming category was down from 9% in 2019 to 7% over the same period.
Other categories where Go is present remain unchanged. These include retail, telecommunications, healthcare, education, transport, public sector, energy, and manufacturing, remained unchanged. Developers in these sectors represented less than 6% each.
Nearly three-quarters of the survey respondents worked in software development. The majority do their Go development on Linux or Mac OS, although Linux is trending down slightly and Mac OS is growing.
The biggest criticism: lack of “generics”
The survey results showed that one of the biggest complaints among developers who use Go is its lack of “generics” or generic types.
Of the 1,162 respondents who said they would use Go more if it had an extra feature, 88% cited generics as the feature that would change their mind. That is much more than the number two feature, better error handling, which only garnered 58%.
The focus on generics was also reflected when respondents were asked what their the top challenge was when using Go. There, 18% said it was the lack of generics.
A possible addition later this year?
In January, the Go community released a proposal to finally add generics to Go. And now it looks like Generics could become a feature of Go in 2021.
Ian Lance Taylor, who authored the proposal, said adding generics isn’t all that easy. “Although generics have clear use cases, fitting them cleanly into a language like Go is a difficult task,” he said. “There have been several others over the last decade,” he added.
Taylor says that if the proposed design is accepted, the project hopes to implement it by the end of 2021, possibly in the Go 1.18 betas.