The fact that the issues are still largely the same as in 2018 could be caused by language’s new approach to adding features, which is meant to make sure everyone is on the same page for new additions. But it also slows things down when essentially done capabilities are canned at the last minute due to newly voiced concerns, as was the case with the try proposal in July 2019.
“The biggest challenges respondents reported remain largely consistent with last year,” the report states. Thus, while Rust users mainly suffer from low adoption rates, Go devs’ top problems still are the lack of generics and a solid modules/package management approach, with growing numbers also being troubled by insufficient tooling.
Luckily, generics are already under active development, as it noted in the previous release announcement. However, the Go team also plans to alleviate the other pain points, writing that they “hope to greatly improve the developer experience, particularly around modules, tooling, and the getting started experience, in the coming months”.
When it comes to tooling, debugging specifically seems to be on people’s minds, since it is rated to be either “very” or “critically” important by a majority, while also receiving “significantly lower satisfaction scores compared to other topics”.
This seems to be down to a “perceived unfavorable cost/benefit trade-off to learning/using Go’s debugging and profiling tooling, and challenges making the tooling work in various environments”, as the team puts it. Targeted improvements include additional educational materials meant to support the 19 per cent of respondents that cited a lack of knowledge or best practices as a core reason for their bug diagnostics issues.
Troubles when using Go on cloud platforms were also flagged up in the comparison of importance and satisfaction score. However, there’s not too much the Go team can do to up the big cloud providers’ game on update speed and SDK quality – with the exception of on GCP, to be fair, since Go is a Google project after all.
Looking at the general statistics of the survey, most of the 10,975 participants used to build either API/RPC services (71 per cent) or CLIs (62 per cent), followed by libraries and web services (48 and 47 per cent respectively), with most using it in the tech industry (43 per cent), followed by financial services (12 per cent) and media/gaming (9 per cent).
Given all of that, it doesn’t come as a huge surprise that Go tends to pop up most in the area of web development (66 per cent), with databases (45 per cent), network and systems programming (42/38 per cent), and DevOps (37 per cent) trailing behind.
Probably thanks to an unadulterated interest in cloud native technologies – to which Go is quite essential – the language still draws a lot of attention. People new to it seem to have been especially keen to share their take on the current state of things, since a good third of respondents claim to have used Go less than a year. To make sure it is more than a hobbyist language, devs were also asked where they used Go, to which 72 per cent answered “at work” and 62 per cent “outside of it”.
89 per cent showed a strong interest in using it in their next project, though main projects being written in other languages (56 per cent), other language preferences within the team (37 per cent) and lack of critical features (25 per cent) might prevent these respondents from doing so.
Go and Rust users seem to have a common favourite tool, since 41 per cent claimed to work with Visual Studio Code, followed by a growing number of Go Land/IntelliJ IDEA lovers (34 per cent). In the meantime, the number of Go devs using Vim, Emacs, Sublime, and Atom are declining, according to the report.