Чем Go отличается от других языков и почему его выбирают для бэкенда?
- Какие сильные и слабые стороны у Go?
Go — компилируемый статически типизированный язык с простым синтаксисом, сборщиком мусора и встроенной конкурентностью (горутины и каналы). Компилируется в один статический бинарник, быстро собирается — удобно для сервисов, CLI и инфраструктуры (Docker, Kubernetes, Terraform написаны на Go).
- Нет классов и наследования — структуры, методы, встраивание и неявные интерфейсы
- Ошибки — значения, а не исключения
- Минимализм намеренный: один способ форматирования (gofmt), мало возможностей языка
А ещё Слабые стороны: многословная обработка ошибок, дженерики появились поздно (1.18), паузы GC короче, чем у JVM, но управлять памятью тоньше нельзя
Подробно
Почему для бэкенда:
- конкурентность — горутины стоят килобайты, их можно запустить сотни тысяч; сетевой код пишется блокирующим и прямолинейным;
- развёртывание — один бинарник без рантайма и зависимостей, образ контейнера в десятки мегабайт;
- скорость сборки и запуска — секунды на сборку, миллисекунды на старт;
- читаемость — мало конструкций, код в разных командах выглядит одинаково, легко входить новичкам;
- стандартная библиотека — HTTP-сервер, JSON, криптография, тесты и профилировщик из коробки.
Чем расплачиваются:
if err != nilпосле каждого вызова;- нет исключений, перегрузки, наследования, тернарного оператора;
- выразительности меньше, чем в Kotlin или Rust;
- GC есть, поэтому для систем с жёсткими требованиями к задержкам иногда выбирают Rust или C++.
Типичные ниши: микросервисы, API-шлюзы, инфраструктурные инструменты, сетевые прокси, CLI.
Что хотят услышать
- Основные свойства языка.
- Почему удобен для сервисов.
- Честные недостатки.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Компилируемый, статически типизированный, с горутинами и GC
- ✗Go — интерпретируемый язык с динамической типизацией и встроенной виртуальной машиной
- ✗Go требует виртуальной машины для запуска
- ✗В Go есть классы и наследование
Что спросят дальше
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.