Почему Big Tech никуда не уходят от Go

Разбор буллшит статьи о минусах Go:

1. Простота Go не справляется со сложностью #

Довелось мне посмотреть на слитую кодовую базу одной компании в 2022 году. Особенно заинтересовал меня код их облака. О чудо, весь их код был написан без дженериков на всемогущем алиасе any. Продукт успешно функционирует и успешно приносит прибыль. Фичи выпускают быстрее, чем я успеваю изучить существующие.

Философия и подходы к разработке Go позволили разработчикам лаконично выразить свои мысли и успешно создать дубликат всемогущего AWS для СНГ сегмента.

В современных реалиях рядовые гребцы пишут МИКРО сервисы, размер кодовой базы не является значительной по сравнению с теми же кодовыми базами монолитов на Delphi. Соответственно

2. Обработка ошибок на большом масштабе — кошмар #

А вот и нет. Почти всегда ошибки не обрабатывают на месте, и прокидывают дальше, на самый верхний уровень. При этом if err != nil обычно пишется в 2-3 кнопки и tab/enter. Взамен за 2 строки кода мы получаем явный и прозрачный флоу программы, что сильно упрощает отладку и поиск неполадок.

Если в той же java в try/catch перебирать большую часть возможных исключений, то получится примерно такой же объем кодовой базы. Об этом писал какой-то умный дядька лет 10 назад, но я забыл его имя.

3. Конкурентность хороша — пока это не становится опасным #

Утверждение из серии: “а если стрелять себе в ногу, то в ноге появится дырка”. Проблема не в инструменте, а в том, кто и как им пользуется. Ищите утечки, пишите тесты, мониторьте приложение и не будет никаких проблем.

4. Узкие места в производительности в критических системах #

Go никогда не пытался стать универсальным инструментом для решения любых проблем. И никто не заявлял, что он таковым является. Глупо ругать язык с GC за то, что у него есть GC.

Если в вашем проекте нужен был реалтайм и вы написали проект на языке с GC, то это точно проблема не языка с GC)

5. Эргономика разработки имеет значение на масштабе #

Видимо автор остался в 2018-м году с простеньким языковым сервером для Go.

Хочется отметить, что Goland хорошо справляется с дописыванием простых кусков кода, используя локальную ллмку.

Линтеры и стат. анализаторы находят большинство оплошностей достаточно быстро.

Cloudy, chatgpt, gemini, deepseek, АЛИСА отлично генерируют код для типовых (и не очень) задач на Go. Отлично в данном случае означает, что средний результат получается куда приятнее, чем результат генерации для python/js/delphi.

6. Рост Rust, TypeScript и WASM #

Где рост то? На РУ рынке роста популярности данных ЯП не вижу. При этом рост Go вижу. Даже маленькие компании тащат его к себе, т.к. это оптимальный выбор между сложностью кодовой базы, скорость разработки и работы приложения.

Вакансий становится больше, конференций и митапов больше, количество контента так же кратно растет.

7. Внутренние миграции говорят громче слов #

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

В своем кругу общения наблюдаю обратную ситуацию: проекты с python/php/js переписываются на Go по общеизвестным причинам.

Заключительные мысли: Go не умер — но его время на вершине может закончится #

Go живее всех живых. Если его не загубят очередным релизом, то будет процветать и развиваться дальше.