dr.Brain

doctor Brain

мир глазами веб-разработчика

Стоит ли изучать Go в 2021

несколько весомых причин, чтобы начать писать на Go

dr.Brain

время чтения 8 мин.

Photo by Julian Rad on Caters News

В последние годы популярность языка программирования Go значительно возросла. Традиционный ежегодный опрос разработчиков, проводимый уважаемым ресурсом Stack Overflow, продемонстрировал в 2020 году значительный рост позитивного отношения сообщества к этому языку: Go переместился с десятого на пятое место в списке любимых языков программирования. При этом 67% опрошенных респондентов заявили, что им нравится писать код на Go, еще 18% участников опроса продемонстрировали желание приступить к изучению данного языка в ближайшее время. Таким образом, Go занял в опросе третье место после Python и JavaScript.

Наиболее популярные языки программирования. Stack Overflow (2020)

Наиболее популярные языки программирования. Stack Overflow (2020)

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

Согласно данным Stack Overflow средняя зарплата разработчика Go занимает почетное третье место, уступая пальму первенства размерам вознаграждений, предлагаемым работодателями, программистам Perl и Scala.

Итак, язык программирования Go был создан компанией Google и представлен мировому сообществу в ноябре 2009 года. Работая над Go сотрудники Google закладывали в основу языка идеи простоты, надежности и эффективности и им удалось это сделать. Именно по этой причине подавляющее большинство разработчиков, перешедших на Go, отмечают улучшение результатов своего труда. Результаты опроса 9648 разработчиков Go, проведенного другим не менее уважаемым ресурсом “The Go Blog”, показали, что 81% респондентов могут похвастаться очень хорошей или, даже, великолепной производительностью своей работы на данном языке программирования.

Кстати, даже если Вы только начали свое погружения в мир информационных технологий, Go будет хорошим выбором для того, чтобы получить базовые навыки в программировании. Синтаксис этого языка прост и легко читаем. В отличие от Java или С#, Go не навязывает принципы объектно-ориентированного подхода, облегчая таким образом изучение языка, особенно, для начинающих программистов. Огромным плюсом языка Go является то, что он имеет хорошо отлаженный garbage collector, эффективно выполняющий работу по уничтожению неиспользуемых данных. Этот факт избавляет разработчиков Go, от страданий программистов C и С++.

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

Содержание


Простота синтаксиса

Синтаксис многих языков программирования (например: Java) тяжел для понимания, его изучение отнимает неоправданно много времени. Но, если начинающий программист выбрал для старта один из простых языков, к которым, с точки зрения правил написания, можно отнести и Go, он сможет избежать множества стрессовых и неловких моментов в дальнейшем. Скорее всего многие разработчики не захотят в верить такому утверждению. Пэтому даавайте просто выведем на экран фразу “Hello World!” на языке Java:

class HelloWorldApp {ass HelloWorldApp {
    public static void main(String[] args) {  
        System.out.println("Hello World!");

А потом проделаем то же самое, но уже с помощью Go:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World")
}

Как уже упоминалось ранее, Go не навязывает объектно ориентированный подход. В этом языке не существует классов. Вместо классов в Go код разделен на пакеты, которыми легко и удобно управлять. Кроме того, Go не поддерживает наследование. Благодаря этому, модифицировать код становится легче, так как можно не опасаться эффекта домино, когда потомки наследуют свойства и методы родительских классов. Также в Go нет конструкторов, дженериков, исключений и аннотаций. Такой подход делает код написанный на этом языке программирования простым, кратким и хорошо читаемым.

Хотя освоить такие динамические языки программирования, как Python и JavaScript, легче, чем Java или C++, они все равное достаточно далеки от сиюминутных потребностей пользователя и зачастую созданы для достижения определенных узконаправленных целей. Например: JavaScript хорош в создании веб-приложений, а Python практически незаменим в Data Science. Но, если Ваша цель - изучение фундаментальных принципов программирования, Go - отличный выбор. После изучения Go освоить другие языки программирования будет намного проще.

Еще одной уникальной особенностью Go является то, что разработчик может создавать сложные программы, не прибегая к помощи сложных сторонних библиотек. Можно сказать, что стандартный функционал языка Go всеобъемлющ, но не очень сложен. Отсутствие потребности в интеграции программ, написанных на Go, со сторонними библиотеками минимизирует возможные риски появления несовместимого кода или конфликтов имен. Мощный стандартный функционал Go позволяет с помощью нескольких строк кода справляться с задачами, решение которых на других языках программирования потребовало бы использования неоднозначных обходных методик.

Большие возможности языка

Go является относительно молодым языком программирования. Но, несмотря на это, он привлекает пристальное внимание таких крупных брендов, как BBC, Uber, Docker, Intel, Medium, Baidu, Alibaba.

Компании, которые выбрали Go

Компании, которые выбрали Go

Компании, переходящие на использование Go в своих проектах, в первую очередь опираются на следующие положительные свойства языка:

  1. простота,
  2. хорошая поддержка,
  3. высокий уровень безопасности,
  4. легкость модификации.

По данным исследования, проведенного и опубликованного в феврале 2020 года авторитетным изданием IEE Spectrum, Go занимает ведущее место среди языков программирования, обсуждаемых на собеседованиях кандидатов IT-специальностей. Это еще раз указывает на то, что хорошее владение языком программирования Go, является для соискателя конкурентным преимуществом при поступлении на работу.

Востребованность языков программирования по данных IEE Spectrum (2020)

Востребованность языков программирования по данных IEE Spectrum (2020)

Стабильность синтаксиса

Использование языка программирования Go растет существенными темпами. К началу 2021 года сообщество профессиональных разработчиков, позиционирующих для себя Go, как основной язык программирования, объединяло более 1,1 миллиона программистов. Но, несмотря на это, синтаксис языка остается относительно стабильным. Изменения, внесенные в Go c момента его первого официального релиза в 2012 году, носили единичный характер. Это означает, что до сих пор в данном языке не возникало проблем совместимости различных релизов, что, несомненно, уберегло от стрессов разработчиков Go, в отличие от их коллег, предпочитающих писать код на JavaScript или Kotlin.

Можно с уверенностью сказать, что уроки и обзоры, посвященные Gо и размещенные на общедоступных ресурсах (например, YouTube), не могут приблизиться к тому многообразию, которое можно наблюдать в отношении Java или JavaScript. Но, также не вызывает сомнений и тот факт, что обучающая информация, доступная начинающим разработчикам Go, до сих пор не устарела. Это значительно упрощает изучение азов языка программирования Go новичками.

Горутины

В Go есть горутины (goroutines), определяющие скорость выполнения задач и эффективность языка программирования в целом. В Java можно одновременно запустить тысячи и, возможно, десятки тысяч потоков. В свою очередь Go позволяет запустить сотни тысяч или миллионы горутинов. В отличие от потоков, горутины потребляют меньше ресурсов. Это означает, что горутины быстрее запускаются и обеспечивают большую производительность, чем потоки. Таким образом, Go позволяет масштабировать приложения, переходя к режиму параллельного исполнения, сохраняя при этом аккуратный, лаконичный и понятный код, в отличие от таких языков программирования, как Java, C, C++.

Следует понимать, что концепции параллелизма и конкурентности применительно к различным языкам программирования достаточно непросты для понимания и требуют отдельного подробного описания. Также, нельзя обойти стороной и тот факт, что потоки в Java и горутины в Go не являются полностью эквивалентными понятиями.

Поддержка

Как упоминалось ранее, язык программирования Go был создан разработчиками Google для упрощения процесса разработки и решения насущных проблем самой компании, связанных с необходимостью:

  1. масштабирования проектов,
  2. обеспечения безопасности,
  3. снижения затрат на поддержку кода.

Так, Google Cloud, являющаяся одной из самых крупных облачных инфраструктур в мире, построена на Go.

Цитируя Google:

Go предоставляет надежность и производительность “из коробки”, управление пакетами, а также простой и понятный синтаксис для быстрого создания приложений и сокращения времени на создание продукта готового к выходу на рынок.

Успех Google Cloud, подтвержденный годами, продемонстрировал ценность Go, в качестве языка, используемого для создания гигантской масштабируемой эффективной облачной архитектуры.

Не так давно в интервью для Evrone один из соавторов языка Роб Пайк не без гордости смог сказать, что Go действительно стал языком облачной архитектуры.

Тысячи разработчиков поддерживают бесперебойную работу Google Cloud, и компания постоянно нанимает новых программистов, в связи с неуклонным ростом данной инфраструктуры. В таком или подобном случае знание языка Go дает кандидату несомненное преимущество в сравнении с соискателями, владеющими только более распространенными языками программирования, такими как Java и Python.

Уровень доходов

Наконец, для разработчиков язык программирования Go хорош уровнем оплаты труда, в том числе и почасовой для начинающих фрилансеров. Весьма маловероятно, что начинающий программист Go, изучающий язык только несколько месяцев, откажется от своей штатной работой с 40-часовой рабочей неделей и гарантированной заработной платой. Но, именно Go, позволяет неплохо заработать на фрилансе. Так начинающий программист может не только улучшить свое финансовое положение, но и приобрести бесценный опыт, который позволит в перспективе выделить свое резюме среди множества других.

В отличие от веб-разработки, где начинающий фрилансер получает около 5 долларов за час своей работы, программисты Go получают довольно неплохие деньги. Статистика сервиса Upwork показывает, что средняя часовая ставка для разработчика Go составляет $44 в час, при этом значительная часть заказчиков готова предложить за час такой работы $150 и больше.

Таким образом, осваивая Go, можно неплохо заработать и приобрести новые знания, даже если нет желания полностью перейти к новой работе.

Разработчиков Go намного меньше, чем программистов Java, Python и C. Данный рынок все еще не насыщен, как в отношении штатных сотрудников, так и в отношении фрилансеров. Именно поэтому программирование на языке Go дает больше возможностей для материального и карьерного роста.

Заключение

Выбор языка программирования зачастую является сложной задачей для новичка. Тем не менее, если Вы решили попробовать себя в разработке программных продуктов в 2021 году, определенно, стоит обратить внимание на Go. Это язык довольно легко освоить. Он создан авторитетной компанией Google и пользуется доверием мировых брендов, таких как Docker, Uber и Alibaba. Кроме того, Go дает хорошие переспективы, как при штатном трудоустройстве, так и при работе в качестве фрилансера.

Можно сказать, что язык программирования Go идеален для изучения в 2021 году.


Спасибо за внимание.


Написано по материалам статьи Soah “Is Golang Worth Learning for Beginners in 2021?”.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.