Go

Поделиться:

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

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

Люди любят Go за его скорость и эффективность, отличную стандартную библиотеку, возможности параллелизма, простоту и лаконичность. Go, безусловно, готов к использованию в реальных бизнес-сценариях, и неудивительно, что доля тех, кто программирует на нем на работе, постоянно растет. Go используется в продакшене во многих крупных компаниях, включая Google, Dropbox, Microsoft, PayPal и Netflix.

В какой операционной системе вы обычно разрабатываете на Go?

Наши данные в некоторой степени согласуются с тем, что мы видим в опросах, проводимых командой разработчиков языка. Go часто называют облачным языком, потому что он широко применяется для создания облачных приложений и DevOps-инструментов. Это объясняет, почему среди Go-разработчиков столь популярны Linux и macOS.

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

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

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

У Go отличная обратная совместимость, но некоторые все равно предпочитают работать с несколькими версиями языка одновременно. Один из примеров – настройка системы непрерывной интеграции с двумя или тремя разными версиями Go с целью выявления регрессий и обнаружения других проблем.

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

Вполне логично, что html/template занимает первое место. Этот пакет автоматически экранирует потенциально опасное содержимое, например данные, сгенерированные пользователями, и помогает предотвращать атаки с внедрением кода.

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

По результатам недавнего опроса Go-разработчиков, 37% пользователей языка пишут на нем сайты и веб-сервисы. Это объясняет, почему так много респондентов используют JavaScript и TypeScript совместно с Go в одном проекте.

Высокое положение Python, вероятно, связано с тем, что многие Python-проекты переходят на Go. Когда разработчики решают добавить новые сервисы в проект, написанный на Python, они часто выбирают Go из-за его эффективности, поддержки параллелизма и высокой производительности в сетевых и веб-сервисах. У такого подхода есть недостатки, но он позволяет избежать переписывания кодовой базы.

Напоминаем, что в GoLand есть встроенная поддержка JavaScript и TypeScript, а для работы с Python можно установить плагин Python Community Edition.

Что вы разрабатываете на Go?

Используете ли вы рабочие пространства (go.work)?

Режим рабочего пространства появился в Go 1.18 и позволил одновременно работать над несколькими модулями без необходимости редактировать файлы go.mod для каждого модуля. Благодаря рабочим пространствам можно управлять всеми зависимостями с помощью файла go.work.

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

Как и год назад, фреймворк Gin остается самым популярным решением для веб-разработки, но и пакет net/http из стандартной библиотеки не сдает позиций. Разобраться в различиях между Gin и net/http поможет руководство по REST в Go.

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

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

Вендоринг в Go — это практика создания локальных копий зависимостей, необходимых для проекта, и включения этих копий в структуру файлов. Таким образом, весь код, необходимый для сборки приложения, находится внутри проекта, и не нужно загружать зависимости из внешних источников.

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

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

Два популярных роутера, gorilla/mux и go-chi/chi, до сих пор уступают стандартной библиотеке. Разобраться в различиях между gorilla/mux и стандартной библиотекой поможет руководство по REST в Go.

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

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

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

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

Go-разработчики ждали поддержку дженериков с незапамятных времен, и в марте 2022 года она наконец появилась в Go 1.18. Спустя год больше 80% Go-разработчиков используют или пробовали использовать дженерики.

Для чего из перечисленного вы использовали TinyGo?

TinyGo демонстрирует отличные результаты при написании небольших и эффективных программ для встраиваемых систем или WebAssembly. Но как показывает наш опрос, этот компилятор также широко используют для создания интерфейсов командной строки. У Go отличная стандартная библиотека, но она может вам не понадобиться, если вы пишете CLI для базовых задач. В таком случае лучше выбратьTinyGo: он позволит сделать CLI компактным и точным.

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

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

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

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