Найти тему
IT notes

Краткий обзор языка программирования Golang

Приступая к обзору Golang, первым делом отмечу, что язык Golang разрабатывает и продвигает Google. Язык хоть и относительно новый, но уже чётко нашёл свои ниши, очень активно развивается, и я, будучи ярым поклонником этого ЯП, уверен, что он захватит многие другие ниши, потеснив... да, практически всех он способен потеснить... И вот почему...

Golang — язык компилируемый, на котором уже из коробки можно собрать исполняемый файл (а-ля экзешник для windows) без всяких прослоек в виде виртуальных машин, вспомогательных тулзовин для сборки и каких-либо плясок с бубном. В этом плане он чем-то напомнил Delphi (светлая ему память), где написал код, нажал Run, за секунду скомпилировался exe-шник, запустилась программа в режиме отладки — красота! Сейчас такими возможностями не может похвастаться, наверное, ни один современный ЯП (можем обсудить в комментариях, если кто-то считает иначе).

Java, Kotlin, Scala компилируется существенно медленнее и компилируются в JVM, а не нативный код. Программы на скриптовых языках типа JavaScript, Python, Php, Ruby вообще не компилируюся, поэтому запускаются и отлаживаются почти мгновенно. Но скриптовый язык не конкурент компилируемому языку с точки зрения итоговой производитенльности получаемых программ. Если попробовать сравнить Golang с С/С++ по части скорости компиляции, то в случае с С/С++ мы также имеем существенно более медленную компиляцию.

Простота — одна из базовых идеологий, лежащих в основе Golang, поэтому порог входа в этот ЯП очень низкий. С другой стороны, Golang — это невероятном мощный и универсальный инструмент! На нём можно разрабатывать высокопроизводительные системы не уступающие производительности систем написанных на C/С++. При этом код будет написан существенно более простым и безопасным образом. Работа с потоками в Golang реализована, на мой взгляд, как абсолютный эталон того, как это должно выглядеть. Накладные расходы при организации потоков минимальны среди всех имеющихся на текущий момент языков программирования. Только этот факт даёт сумасшедший потенциал для дальнейшего развития Golang и захвата новых ниш. Уже сейчас Go начинает серьёзно теснить таких мастодонтов как Java и С++, занимая нишу высоконагруженных систем обработки данных и языков общего назначения. Например, Golang применялся для написания, таких известных продуктов, как Docker, Kubernetes, Ethereum и многих других.

С C++ Go роднит не только возможность компилировать программы в машинный код, но и умение работать с памятью напрямую. Притом в Go вы можете сами выбрать, как вы предпочитаете работать с памятью — безопасно или же не очень. В Go это чётко разделено. В C/C++ с памятью можно работать только опасно. Иногда даже очень опасно...

Рекомендовать ли Golang к изучению? О, да! Я оцениваю Golang как очень перспективный ЯП. Он простой, универсальный, мощный инструмент. Ещё раз отмечу, что Golang поддерживается и разрабатывается Google. Синтаксис и некоторые подходы Golang немного нестандартны, но этим "грешат" многие ЯП, например, те же Python или Ruby, не говоря уже о Haskell. Зарплаты Golang программистов высокие, спрос на Golang программистов постоянно растёт. Поэтому не вижу причин не увлечься Golang всерьёз и надолго.

Смотрите мои обзоры других языков программирования.