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?

64%
61%

Work

28%
28%

Personal / side projects

7%
8%

Hobby

2%
3%

Other

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

68%

77%

No

32%

23%

Yes

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?

25%

html/template

16%

text/template

3%

Pongo2

1%

Plush

1%

Other

65%

None

Which package managers do you use regularly?

87%

86%

Go Modules

6%

5%

govendor

3%

4%

godep

3%

2%

gom

2%

5%

dep

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?

30%

Very satisfied

45%

Satisfied

22%

Neutral

3%

Unsatisfied

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?

34%

JavaScript

28%

Python

26%

TypeScript

7%

C

7%

C++

8%

Other

15%

None

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

46%

Gin

44%

net / http

11%

Echo

6%

Beego

2%

Buffalo

1%

Revel

10%

Other

21%

None

What kind of Go modules proxy do you use?

51%

53%

I don’t use a proxy

23%

27%

Public goproxy.io / goproxy.cn

21%

18%

Public proxy.golang.org

12%

8%

Private goproxy

4%

2%

Private JFrog Artifactory

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

Do you use vendoring in your project?

2022

2021

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?

41%

34%

Standard library

30%

35%

gorilla/mux

9%

10%

go-chi/chi

5%

7%

julienschmidt/httproute

2%

1%

go-zoo/bone

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?

41%

built-in testing

23%

testify

19%

I don’t write unit tests for Go

17%

I write unit tests, but don’t use any frameworks

15%

gomock

6%

ginkgo

4%

gomega

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?

18%

Fewer than 5

49%

5–20

23%

More than 20

10%

Not sure

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

27%

Fewer than 50 files

25%

51–100 files

16%

101–300 files

13%

301–1,000 files

7%

1,001–5,000 files

3%

5,001–10,000 files

3%

More than 10,000 files

6%

Not sure

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?

67%

54%

No

33%

46%

Yes

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?

83%

Go build

37%

Makefile

9%

Gradle

5%

Bazel

1%

Other

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.