Go

Share:

These questions were only shown to respondents who chose Go as one of their three primary programming languages.

How do you use Go?

Do you use multiple versions of Go at the same time?

The number of developers who are using multiple versions of Go simultaneously has grown since last year.

Do you edit multiple Go projects at the same time?

Only about one third of Go developers work with a single project at a time, while the rest of them work with multiple projects simultaneously.

Which template engine do you use for Go development?

Which package managers do you use regularly?

Go modules remains the most popular package manager while the popularity of some package managers such as godep and dep has decreased.

Do you use gopls?

This question was asked only if the respondent selected “Visual Studio Code”, “Vim”, “Sublime Text” in response to the question “Which IDE / editor do you mostly use for Go development?”

Please rate how satisfied you are overall with the gopls experience?

This question was asked only if the respondent selected “Yes” in response to the question “Do you use gopls?”

Which languages do you use along with Go in a single project?

Go developers mentioned JavaScript, Python, and TypeScript most often as the languages they use together with Go in a single project. At the same time, 15 % of respondents develop projects exclusively in Go and don’t use any additional languages.

Frameworks and standard libraries

What kind of Go modules proxy do you use?

The number of Go developers who use a private Go modules proxy has risen.

Do you use vendoring in your project?

The share of respondents who use vendoring in their Go projects is becoming smaller, with the exception of those working on Go modules projects. In the latter case, more developers are using vendoring.

Which Go router do you use regularly?

Standard library is the most widely used Go router, and its popularity is still on the rise. As for the other Go routers, gorilla / mux has become less popular.

Which testing frameworks do you use regularly?

About one fifth of Go developers don’t write any unit tests for Go. Another 17% do write unit tests but don’t use any frameworks.

How many external dependencies do you have in your projects?

What is the size of the codebase you are working with in the IDE / editor?

Go developers’ projects are not very large. For just over half of Go developers they consist of up to 100 files.

Do you put your Go modules project inside or outside the GOPATH?

Do you plan to migrate your projects to Go modules in the next 12 months?

The question was only shown to those respondents who did not select “Go Modules” in response to the question “Which package managers do you use regularly?”

Compared to last year, fewer Go developers expressed their intention to migrate to Go modules in the next 12 months. This package manager is overwhelmingly popular, but its growth might be gradually reaching its limit. The number of developers who plan to stick with using other package managers is growing.

Which build systems do you regularly use?

The question was only shown to those respondents who selected Go Modules in response to the question “Which package managers do you use regularly?”

Thank you for your time!

We hope you found our report useful. Share this report with your friends and colleagues.

If you have any questions or suggestions, please contact us at surveys@jetbrains.com.