While RedMonk’s recent rankings question the trajectory of the Go programming language, the freshly released Go Developer Survey 2020 focuses on the positive, detecting an upward trend in adoption at the workplace.
For the 2020 edition of the poll, the Go team managed to get 9,648 people to answer their questions around language usage, satisfaction, and areas of improvement. Of these, the majority said they’d use Go at work (76%, compared to 73% in 2019 and 72% in 2018) or outside of work (62%). There are quite a few relative newbies, it seems: 48% of respondents said they had been programming in Go for less than two years.
Topping the list of things respondents would use Go for were API/RPC services (74%), followed by runnable/interactive CLI programs (65%), libraries and frameworks (48%), and web services (45%). Respondents largely worked in the tech industry (46%), followed by financial services (12%) and media/gaming (7%), reflecting the narrow market onlookers attested the language.
Although most of those taking the survey felt very (53%) or extremely (29%) productive using the language, mostly after getting around three months of practice, the survey nonetheless found that the documentation is a struggle for many. When asked about specific stumbling blocks, 62% agreed they had rarely found enough information to fully implement a needed feature.
Further, a full 36% mentioned problems when starting with something new to them and 11% said the docs wouldn’t be of much help when evaluating if Go was the language for their project. Since the data comes mostly from people who are otherwise satisfied with Go, it isn’t far-fetched to think that these failings would deter those teams who are casually evaluating the language from using it if another contender’s docs are better at explaining things to them.
Better learning resources and documentation are therefore also on the top of the list of things respondents said could be improved to get more people involved with the language. When asked about technical aspects, there wasn’t much complaint, though areas like binary size, debugging concurrency, and working with web frameworks still leave a bit of room for improvement.
Feature-wise most people among the 26% of respondents who were missing specific capabilities named Generics as the thing they needed for their work (88%). Other desired features include better error handling (58%), Null safety (44%), functional programming features (42%), and a stronger/expanded type system (41%).
The lack of language features or good enough resources, however, were not the main reason devs refrained from using Go more: similar to last year, 54% cited the language of their current project as a reason to not go all-in, while 33% said it was down to the preference of their project, team, or lead – which just wasn’t Go.
Other interesting discoveries include that finding the right data processing engine seems to be a bit of an issue for Go devs, since 52% of respondents using one claimed to have a custom solution. Kafka comes in second with 40%, while the third in line, AWS Data Pipeline, was only able to convince 10% of data enthusiasts.
The report also found again that most Go users taking part in the survey (75%) either contribute infrequently or never to Go open source projects, while only 7% said it was part of their daily routine. Popular programming tools amongst Go users are VS Code (41%) and JetBrains GoLand/IntelliJ IDEA (35%), while editors Vim and Emacs can only entice 14 and 4 per cent respectively.