How are developers using Go and Go modules? We wanted to know, and not just because JFrog Artifactory supports Go registries and helps share versioned Go modules through GoCenter. At JFrog, we’re Go developers too — both JFrog CLI and Xray are written in Go — and busy contributors to the growing GoLang community.
That’s why we surveyed over a thousand developers at the most recent GopherCon conferences in London and San Diego, to better understand the Go community and general sentiment towards Go modules. With the recent release of Go version 1.13, it’s a good time to share some interesting data back to the community.
Here are some of the key things that we learned:
Go Developers Are Highly Engaged
A strong majority of Go developers stay up-to-date with the latest version of GoLang. Over 70% reported using Go version 1.12, which was the most current version at the time of the survey.
Equally of note, over 82% of Go developers are using Go version 1.11 or newer, and so are capable of using Go modules. Only a very small proportion report using earlier versions of Go.
Over 82% of Go developers use a Go version capable of using Go modules, and nearly the same total either use them now or expect to by mid-2020. Click To Tweet
Go Modules Adoption is High
Nearly as many Go developers using the latest GoLang version also report adopting Go modules in their organization. A significant number also expect to use Go modules soon, so that adoption should rise to at least 80% — and likely nearer to 100% — by mid-2020.
GoLang is Used Widely Across Industries
While Go development is applied to a broad range of computing, DevOps ranks only below Web development, with nearly a fifth reporting that they use Go for these purposes. Systems, database, and networking applications scored highly as well, suggesting much room for growth in promising disciplines like mobile and embedded devices.
Choosing Go Modules is Hard
When developers choose open-source components, they tend to seek safety and quality. But there is little consensus on how to judge the risk of any Go module.
Most report a preference of packages that others use most, and the assurance that comes with being popular. Vulnerabilities are a concern as well, and how developers determine the risk of a package varies across a wide range of criteria.
Feeding Back to GoCenter
We appreciate all of the developers who responded to our GoLang survey. The information we’ve learned from it will help us to help you, especially as we continue to make GoCenter a useful tool to help enable adoption of Go modules.
If you haven’t already heard about GoCenter, it provides a central source of immutable, versioned modules, processed and validated directly from Go projects in public source repositories. Among many benefits, using GoCenter can accelerate GoLang application build times.
GoCenter now hosts over 200,000 versioned Go modules made freely available to the Go developer community. We’ve been busy keeping GoCenter up-to-date to support the latest Go module features in GoLang 1.13.
Your survey feedback also confirms for us that we’re doing some things right. As developers have a harder time choosing the growing swarm of Go modules, GoCenter aids discoverability through interactive search. Once you have results, GoCenter provides you all the information you need to decide which modules fit your needs best, including activity and star ratings.
We’re even working on a system for scoring modules according to chosen criteria. If you would like to contribute your ideas to this effort, we would love to hear from you!
We want to hear what you have to say, so that we can better respond to what the Go developer community wants. Because we’re part of the community too.