Go поражает своей аскетичностью. Нет классов, нет generics (до недавнего времени), исключений или перегрузки операторов. Синтаксис умещается на несколько страниц. Казалось бы, такой язык обречен на провал, но именно эта ограниченность стала его главным преимуществом. Когда в проекте участвуют десятки разработчиков, отсутствие "творческих" возможностей превращается в достоинство.
Горутины — визитная карточка Go. Легковесные потоки, которые создаются одной строкой кода, перевернули представление о параллельном программировании. Больше нет необходимости в сложных синхронизациях — каналы и select делают конкурентный код предсказуемым. Это как перейти от управления паровозом к электромобилю: проще, чище, эффективнее.
Но настоящая магия Go — в его toolchain. Одна команда go build создает статически линкованный бинарник для любой платформы. Нет нужды в virtualenv, nvm или других костылях — зависимости скачиваются автоматически и хранятся в едином пространстве. Тесты, бенчмарки, профилирование — все встроено из коробки. Это программирование без церемоний, где можно сосредоточиться на задаче, а не на настройке окружения.