Go

Поделиться:

На вопросы о Go отвечали только те, кто выбрал его в качестве одного из трех основных языков программирования.

Для чего вы используете Go?

64%
61%

Для работы

28%
28%

Для личных/сторонних проектов

7%
8%

Для хобби

2%
3%

Другое

Используете ли вы несколько версий Go одновременно?

68%

77%

Нет

32%

23%

Да

Число респондентов, использующих одновременно несколько версий Go, выросло по сравнению с прошлым годом.

Работаете ли вы над несколькими Go-проектами одновременно?

Только треть Go-разработчиков занимаются одним проектом — остальные работают над несколькими проектами одновременно.

Какой шаблонизатор вы используете для разработки на Go?

25%

html/template

16%

text/template

3%

Pongo2

1%

Plush

1%

Другое

65%

Ни одного

Какие менеджеры зависимостей вы регулярно используете?

87%

86%

Go Modules

6%

5%

govendor

3%

4%

godep

3%

2%

gom

2%

5%

dep

Самым популярным менеджером зависимостей остается Go Modules, а популярность некоторых других, например godep и dep, снизилась.

Используете ли вы gopls?

Вопрос был задан только тем, кто выбрал Visual Studio Code, Vim или Sublime Text, отвечая на вопрос «Какую IDE или редактор вы чаще всего используете для разработки на Go?»

Как респонденты оценивают опыт работы с gopls

30%

Очень удовлетворены

45%

Удовлетворены

22%

Относятся нейтрально

3%

Не удовлетворены

Вопрос был задан только тем, кто утвердительно ответил на вопрос «Используете ли вы gopls?»

Какие языки вы используете в одном проекте с Go?

34%

JavaScript

28%

Python

26%

TypeScript

7%

C

7%

C++

8%

Другое

15%

Ни одного

Чаще всего в одном проекте с Go разработчики используют JavaScript, Python и TypeScript. При этом 15% респондентов пишут только на Go, не используя никакие другие языки.

Фреймворки и стандартные библиотеки

46%

Gin

44%

net / http

11%

Echo

6%

Beego

2%

Buffalo

1%

Revel

10%

Другое

21%

Ни одного

Какой прокси Go Modules вы используете?

51%

53%

Не пользуюсь прокси

23%

27%

Открытый goproxy.io / goproxy.cn

21%

18%

Открытый proxy.golang.org

12%

8%

Выделенный goproxy

4%

2%

Выделенный JFrog Artifactory

Выросло число Go-разработчиков, использующих частный прокси Go Modules.

Используется ли в вашем проекте вендоринг?

2022

2021

Доля респондентов, использующих вендоринг в Go-проектах, уменьшается, но это не касается тех, кто работает над проектами Go Modules: они стали использовать вендоринг чаще.

Какой Go-роутер вы регулярно используете?

41%

34%

Стандартная библиотека

30%

35%

gorilla/mux

9%

10%

go-chi/chi

5%

7%

julienschmidt/httproute

2%

1%

go-zoo/bone

Из Go-роутеров чаще всего используется стандартная библиотека, и ее популярность продолжает расти. Среди других Go-роутеров отметим снижение популярности gorilla/mux.

Какие фреймворки вы регулярно используете для тестирования?

41%

Встроенные средства тестирования

23%

testify

19%

Не пишу юнит-тесты для Go

17%

Пишу юнит-тесты, но не использую фреймворки

15%

gomock

6%

ginkgo

4%

gomega

Примерно пятая часть Go-разработчиков не пишут юнит-тесты для Go. Еще 17% пишут юнит-тесты, но не используют фреймворки.

Сколько внешних зависимостей в ваших проектах?

18%

Меньше 5

49%

5–20

23%

Больше 20

10%

Затрудняюсь с ответом

Каков размер кодовой базы, с которой вы работаете в IDE или редакторе?

27%

Менее 50 файлов

25%

51–100 файлов

16%

101–300 файлов

13%

301–1 000 файлов

7%

1 001–5 000 файлов

3%

5 001–10 000 файлов

3%

Более 10 000 файлов

6%

Затрудняюсь с ответом

Проекты Go-разработчиков относительно небольшие: примерно у половины ответивших они содержат не более 100 файлов.

Вы размещаете проекты Go Modules внутри или за пределами GOPATH?

Планируете ли вы перенести свои проекты в Go Modules в ближайшем году?

67%

54%

Нет

33%

46%

Да

Вопрос был задан только тем, кто не выбрал Go Modules, отвечая на вопрос «Какие менеджеры зависимостей вы регулярно используете?»

По сравнению с прошлым годом, меньше Go-разработчиков планируют в ближайшие 12 месяцев перейти на Go Modules. Этот менеджер зависимостей с большим отрывом удерживает первое место по популярности, но потенциал роста, вероятно, почти исчерпан. Число тех, кто планирует использовать другие менеджеры зависимостей, растет.

Какие системы сборки вы регулярно используете?

83%

Go build

37%

Makefile

9%

Gradle

5%

Bazel

1%

Другое

Вопрос был задан только тем, кто выбрал Go Modules, отвечая на вопрос «Какие менеджеры зависимостей вы регулярно используете?»

Спасибо, что уделили время!

Если результаты исследования показались вам интересными, поделитесь ими с друзьями и коллегами.

Если у вас есть вопросы или пожелания, свяжитесь с нами по адресу surveys@jetbrains.com.