Чем Go отличается от Python и Java: что он даёт и чем за это платит
Go проектировался вокруг одной цели — чтобы большая команда могла быстро писать и быстро собирать сетевые сервисы. Отсюда его особенности. Компиляция в один статический бинарник: нет ни интерпретатора, ни JVM, ни виртуального окружения — деплой сводится к копированию файла, а образ контейнера получается на несколько мегабайт вместо сотен. Сборщик мусора с очень короткими паузами, поэтому Go годится под задержки, где Java с её паузами требует тонкой настройки. Конкурентность в языке, а не в библиотеке: горутины и каналы — часть синтаксиса. Намеренно маленький язык: нет наследования, нет исключений, нет перегрузки операторов — почти нет способов написать одно и то же по-разному, и чужой код читается сразу. Плата — многословность: обработка ошибок занимает три строки на каждый вызов, а до дженериков многие вещи приходилось писать руками.