Разбор буллшит статьи о минусах 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 живее всех живых. Если его не загубят очередным релизом, то будет процветать и развиваться дальше.