| # Go 2016 Survey Results | |
| 6 Mar 2017 | |
| Tags: survey, community | |
| Summary: What we learned from the December 2017 Go User Survey. | |
| Steve Francia, for the Go team | |
| spf@golang.org | |
| ## Thank you | |
| This post summarizes the result of our December 2016 user survey along with our commentary and insights. | |
| We are grateful to everyone who provided their feedback through the survey to help shape the future of Go. | |
| ## Programming background | |
| Of the 3,595 survey respondents, 89% said they program in Go at work or outside of work, | |
| with 39% using Go both at home and at work, 27% using Go only at home, and 23% using Go only at work. | |
| We asked about the areas in which people work. | |
| 63% said they work in web development, but only 9% listed web development alone. | |
| In fact, 77% chose two or more areas, and 53% chose three or more. | |
| We also asked about the kinds of programs people write in Go. | |
| 63% of respondents write command-line programs, 60% write API or RPC services, and 52% write web services. | |
| Like in the previous question, most made multiple choices, | |
| with 85% choosing two or more and 72% choosing three or more. | |
| We asked about people’s expertise and preference among programming languages. | |
| Unsurprisingly, Go ranked highest among respondents’ first choices in both expertise (26%) and preference (62%). | |
| With Go excluded, the top five first choices for language expertise were | |
| Python (18%), Java (17%), JavaScript (13%), C (11%), and PHP (8%); | |
| and the top five first choices for language preference were | |
| Python (22%), JavaScript (10%), C (9%), Java (9%), and Ruby (7%). | |
| Go is clearly attracting many programmers from dynamic languages. | |
| .html survey2016/background.html | |
| ## Go usage | |
| Users are overwhelmingly happy with Go: | |
| they agree that they would recommend Go to others by a ratio of 19:1, | |
| that they’d prefer to use Go for their next project (14:1), | |
| and that Go is working well for their teams (18:1). | |
| Fewer users agree that Go is critical to their company’s success (2.5:1). | |
| When asked what they like most about Go, users most commonly mentioned | |
| Go’s simplicity, ease of use, concurrency features, and performance. | |
| When asked what changes would most improve Go, | |
| users most commonly mentioned generics, package versioning, and dependency management. | |
| Other popular responses were GUIs, debugging, and error handling. | |
| When asked about the biggest challenges to their own personal use of Go, | |
| users mentioned many of the technical changes suggested in the previous question. | |
| The most common themes in the non-technical challenges were convincing others to use Go | |
| and communicating the value of Go to others, including management. | |
| Another common theme was learning Go or helping others learn, | |
| including finding documentation like getting-started walkthroughs, | |
| tutorials, examples, and best practices. | |
| Some representative common feedback, paraphrased for confidentiality: | |
| .html survey2016/quotes.html | |
| We appreciate the feedback given to identify these challenges faced by our users and community. | |
| In 2017 we are focusing on addressing these issues and hope to make as many significant improvements as we can. | |
| We welcome suggestions and contributions from the community in making these challenges into strengths for Go. | |
| .html survey2016/usage.html | |
| ## Development and deployment | |
| When asked which operating systems they develop Go on, | |
| 63% of respondents say they use Linux, 44% use MacOS, and 19% use Windows, | |
| with multiple choices allowed and 49% of respondents developing on multiple systems. | |
| The 51% of responses choosing a single system split into | |
| 29% on Linux, 17% on MacOS, 5% on Windows, and 0.2% on other systems. | |
| Go deployment is roughly evenly split between privately managed servers and hosted cloud servers. | |
| .html survey2016/dev.html | |
| ## Working Effectively | |
| We asked how strongly people agreed or disagreed with various statements about Go. | |
| Users most agreed that Go’s performance meets their needs (57:1 ratio agree versus disagree), | |
| that they are able to quickly find answers to their questions (20:1), | |
| and that they are able to effectively use Go’s concurrency features (14:1). | |
| On the other hand, users least agreed that they are able to effectively | |
| debug uses of Go’s concurrency features (2.7:1). | |
| Users mostly agreed that they were able to quickly find libraries they need (7.5:1). | |
| When asked what libraries are still missing, the most common request by far was a library for writing GUIs. | |
| Another popular topic was requests around data processing, analytics, and numerical and scientific computing. | |
| Of the 30% of users who suggested ways to improve Go’s documentation, | |
| the most common suggestion by far was more examples. | |
| The primary sources for Go news are the Go blog, | |
| Reddit’s /r/golang and Twitter; | |
| there may be some bias here since these are also how the survey was announced. | |
| The primary sources for finding answers to Go questions are the Go web site, | |
| Stack Overflow, and reading source code directly. | |
| .html survey2016/effective.html | |
| ## The Go Project | |
| 55% of respondents expressed interest in contributing in some way to the Go community and projects. | |
| Unfortunately, relatively few agreed that they felt welcome to do so (3.3:1) | |
| and even fewer felt that the process was clear (1.3:1). | |
| In 2017, we intend to work on improving the contribution process and to | |
| continue to work to make all contributors feel welcome. | |
| Respondents agree that they are confident in the leadership of the Go project (9:1), | |
| but they agree much less that the project leadership understands their needs (2.6:1), | |
| and they agree even less that they feel comfortable approaching project leadership with questions and feedback (2.2:1). | |
| In fact, these were the only questions in the survey for which more than half of respondents | |
| did not mark “somewhat agree”, “agree”, or “strongly agree” (many were neutral or did not answer). | |
| We hope that the survey and this blog post convey to those of you | |
| who are aren’t comfortable reaching out that the Go project leadership is listening. | |
| Throughout 2017 we will be exploring new ways to engage with users to better understand their needs. | |
| .html survey2016/project.html | |
| ## Community | |
| At the end of the survey, we asked some demographic questions. | |
| The country distribution of responses roughly matches the country distribution of site visits to golang.org, | |
| but the responses under-represent some Asian countries. | |
| In particular, India, China, and Japan each accounted for about 5% of the site visits to golang.org in 2016 | |
| but only 3%, 2%, and 1% of survey responses. | |
| An important part of a community is making everyone feel welcome, | |
| especially people from under-represented demographics. | |
| We asked an optional question about identification across a few diversity groups. | |
| 37% of respondents left the question blank and 12% of respondents chose “I prefer not to answer”, | |
| so we cannot make many broad conclusions from the data. | |
| However, one comparison stands out: the 9% who identified as underrepresented agreed | |
| with the statement “I feel welcome in the Go community” by a ratio of 7.5:1, | |
| compared with 15:1 in the survey as a whole. | |
| We aim to make the Go community even more welcoming. | |
| We support and are encouraged by the efforts of organizations like GoBridge and Women Who Go. | |
| The final question on the survey was just for fun: what’s your favorite Go keyword? | |
| Perhaps unsurprisingly, the most popular response was `go`, followed by `defer`, `func`, `interface`, and `select`. | |
| .html survey2016/community.html |