Язык программирования go где используется
Перейти к содержимому

Язык программирования go где используется

  • автор:

Язык программирования Go: почему все его любят и что на нем можно писать

Язык программирования Go: почему все его любят и что на нем можно писать главное изображение

Go — молодой язык программирования с открытым исходным кодом и огромным комьюнити опытных разработчиков, которые его активно используют. Go создавался в качестве более эффективной, простой и доступной альтернативы другим языкам программирования внутри компании Google в 2007 году.

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

Один из создателей Go разработчик Роб Пайк говорил, что новый язык программирования должен быть похож на С, C++ или Java — чтобы разработчикам не пришлось сильно переучиваться. Но при этом он должен быть проще, быстрее и эффективнее — потому что сотрудники Google в первую очередь инженеры, а не ученые, которые могут тратить сотни часов на изучение технологии.

Go разрабатывался как опен-сорс проект и публично вышел в 2012 году. За 10 лет он стал одним из самых популярных языков программирования: в 2022 году он находится на шестом месте по популярности среди языков программирования, которые используются на GitHub, обогнав PHP, C, C#, Ruby и Swift.

Для чего используется Go

Изначально Go создавался для программ, связанных с сетями и инфраструктурой, в качестве замены популярных высокопроизводительных серверных языков, таких как Java и C++. Сегодня же Go используется как бэкенд-язык для огромного количества различных направлений разработки:

  • Облачные и серверные приложения, веб-сервисы
  • DevOps и автоматизация процессов
  • Приложения для работы с командной строкой
  • Искусственный интеллект и работа с большими данными
  • Программирование микроконтроллеров и робототехники.

Однако лучше всего Go раскрывается как язык программирования для работы с инфраструктурой. Самые популярные инструменты в этой области написаны именно на Go — Kubernetes, Docker и Prometheus.

Почему разработчики любят Go

Простота языка

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

Высокопроизводительные приложения

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

Кроме того, Go отлично работает с инфраструктурой и облачными платформами. Его используют в качестве основного языка Amazon Web Services, Microsoft Azure и Google Cloud Platform (GCP).

Комьюнити и зарплаты

У Go очень живое и активное сообщество разработчиков, так как это опен-сорс проект. Они самостоятельно контрибьютят его, создают новые модули и библиотеки, а также помогают новичкам осваивать язык. Несмотря на опен-сорс историю, Go активно поддерживается Google, поэтому язык быстро развивается и активно меняется.

Про зарплаты: у Go-разработчиков вторая на IT-рынке зарплата в США, она превышает $140 тыс. в год. Однако стоит отметить, что такой перекос в зарплатах у Go-разработчиках на американском рынке может быть связан с тем, что большинство из них работают в Google, где традиционно программисты получали большую зарплату.

По результатам опроса сервиса Stack Overflow за 2021 год, Go разработчики зарабатывают за год в среднем в мире $75 тыс. в год — это делает язык восьмым по прибыльности из всех существующих. Это больше, чем Python-разработчики ($59 тыс. в год), JS-разработчики ($54 тыс. в год), Java-разработчики ($51 тыс. в год) и PHP-разработчикам ($38 тыс. в год). Вероятно, такая зарплата связана с опытом Go-разработчиков, в него редко идут джуниорами и практически не учат в качестве первого языка программирования.

На сайте HeadHunter на конец лета 2022 года было 2 641 вакансия с упоминанием языка программирования Go. Зарплаты начинаются от 80 тыс. рублей, при этом есть 40 вакансий, по которым платят более 600 тыс. рублей в месяц.

В вакансиях в связке с Go часто требуются технологии:

  1. Docker
  2. Postgres
  3. Kubernetes
  4. gRPC
  5. Git
  6. Rest API
  7. Python
  8. PHP

«Go — идеальное карьерное развитие для PHP-разработчиков»: преподаватель Хекслета Влад Гукасов — про Go-разработчиков

Преподаватель Хекслета Go Влад Гукасов рассказывает, зачем PHP-разработчики переходят на Go, почему языку практически не нужны фреймворки и какие у Go есть уникальные IT-концепции.

Меня зовут Влад Гукасов, я работаю бэкендером в международной финтех-компании Space307. Основной язык на бэкенде в нашей компании — Go.

До этого я писал на PHP, но в определенный момент появилась задача, где идеально подходил именно Go. Мы реализовывали сервис для веб-сокетов — это микросервис, поэтому PHP для этой задачи плохо подходит, зато Golang — отлично. Так я познакомился с Go, делал рабочие фичи и параллельно проходил курсы на разных платформах. Потом я поменял работу, и новую искал уже с упором на Go — теперь я поддерживаю легаси на PHP, и пишу новый код на Golang.

Вообще, Go — идеальное карьерное продолжение для PHP-разработчика. Многие программисты используют эти два языка в синергии, потому что все большие старые проекты в России написаны на PHP — «ВКонтакте», «Авито», у VK много проектов на нем. Но нагрузка постепенно растет, спектр задач расширяется, поэтому компании переходят на более эффективные и современные технологии.

Go для таких проектов идеально подходит — его легко изучить, у него огромный перформанс, он хорошо работает с железом серверов. Поэтому большинство крупных компаний пишут новые сервисы именно на нем, и нанимают бэкендеров в основном со стеком PHP/Go или Python/Go.

Плюсы Go

По синтаксису Go входит в C-подобную группу, как и многие другие языки программированию, поэтому на него легко перейти и ему легко обучиться. То есть разработчик всю жизнь писал на PHP, а потом просто взял и перешел на Go. И начал писать код в тысячи раз производительнее предыдущего. Это самый главный плюс.

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

Третий плюс: весь проект и вся кодовая база собирается в один бинарный файл. Это значит, что можно писать один код, который потом легко компилировать под любую платформу и архитектуру процессора — под Windows или Linux. Этим часто пользуются в DevOps, когда надо написать скрипты и скомпилировать их под каждое железо. И делается это просто одной строкой.

Go изначально был спроектирован для больших нагрузок — под ней в данном случае подразумевается количество выполняемых параллельных задач. Чтобы программа работала параллельно, нужно писать асинхронный код, который будет в один момент времени выполнять несколько действий. В Go для этого реализована концепция Green Threads в виде горутин. И так получилось, что писать асинхронный код в Go несложно, при этом он работает производительно и максимально утилизирует все ресурсы железа, в том числе ядра процессора.

Go как второй язык

Я знаю людей, которые начинали свой путь в программировании с Go — и с этим нет проблем, в нем используются те же самые концепции, что и в других языках разработки. И скорее всего, джуниор Go-разработчик сразу попадет в компанию с высокой инженерной культурой, где его будут развивать и где он сможет быстро учиться.

Чаще всего Go используют в качестве второго языка разработки. Поэтому люди, которые с ним работают, сразу видят его простоту и логичность. Например, по сравнению с Node.JS в Go весь код по умолчанию синхронен, пока ты сам не скажешь, что нужно делать по-другому. Еще в Go сложно выстрелить себе в ногу и наделать ошибок, связанных с типами данных: потому что язык не динамический, а компилируемый со статической типизацией.

Почему в Go не нужны фреймворки

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

Допустим, разработчику нужно сделать обычный бэкенд веб-сервер, который будет обрабатывать какие-то самые простые запросы. На Ruby on Rails или PHP мы для этого работаем через фреймворк (в PHP сначала надо поднять Nginx — прокси, потому что PHP не может самостоятельно обрабатывать запрос).

На Go это выглядит так: программист просто пишет код, в котором использует стандартную и встроенную в язык библиотеку HTTP. Говорит — подними мне сервер на такой-то порт и обрабатывай каждый запрос так и так. Потом Go автоматически компилирует бинарник, который запускается на сервере, где обрабатывает запросы. То есть никакого дополнительного фреймворка не надо: язык сам как большой фреймворк — очень просто собрать все, что нужно.

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

Попробуйте бесплатные курсы по Go: На опен-сорс проекте Хекслета Code Basics есть большой курс «Go как второй язык», где можно бесплатно познакомиться с синтаксисом Golang и его базовыми концепциями разработки

Зачем вам учить Go


Источник картинки

Go — относительно молодой, но популярный язык программирования. По данным опроса Stack Overflow, именно Golang получил третье место в рейтинге языков программирования, которые хотели бы освоить разработчики. В этой статье мы попробуем разобраться в причинах популярности Go, а также посмотрим, где этот язык используется и почему его вообще стоит изучать.

Немного истории

Язык программирования Go был создан компанией Google. Собственно, его полное название Golang — производное от «Google language». Несмотря на то, что в анонсе язык был назван молодым, в этом году ему исполняется уже десять лет.

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

Изначально он был инструментом внутри Google, но с течением времени вышел из недр корпорации и стал достоянием общественности.

Преимущества языка

У Golang есть большое количество плюсов, как известных, так и не очень.

Простота. Собственно, это была основная цель создания языка, и ее удалось достичь. У Go достаточно простой синтаксис (с определенными допущениями), поэтому приложения можно разрабатывать быстрее, чем на некоторых других языках. И здесь есть два интересных момента.

Во-первых, Golang достаточно быстро может изучить полный новичок в программировании — тот, кто не знает вообще ни одного языка и только собирается стать разработчиком. О Go можно сказать, что он почти такой же несложный (относительно, конечно), как PHP или даже Pascal, но такой же мощный, как С++.

Во-вторых, Go может освоить уже «сформировавшийся программист», тот, кто уже знает один или несколько языков. Чаще всего разработчики изучают Go после того, как освоили Python или PHP. Далее некоторые программисты с успехом используют пару Python/Go или PHP/Go.

Большое количество библиотек. Если вам не хватает какой-либо возможности в Go, можно воспользоваться одной из множества библиотек и выполнить требуемую задачу. У Go есть еще одно преимущество — можно без проблем взаимодействовать с библиотеками языка Си. Есть даже мнение, что Go-библиотеки — это обертки для C-библиотек.

Чистота кода. Компилятор Go позволяет держать код «чистым». К примеру, неиспользуемые переменные считаются ошибкой компиляции. В Go решается большая часть проблем форматирования. Это делается, к примеру, при помощи программы gofmt при сохранении или компиляции. Форматирование правится автоматически. Подробнее обо всем этом можно узнать в туториале Effective.

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

GoDoc. Утилита, которая очень сильно упрощает документирование кода. Большим плюсом GoDoc является то, что здесь не используются дополнительные языки вроде JavaDoc, PHPDoc или JSDoc. Утилита использует максимальное количество информации, которую она извлекает из документируемого кода.

Обслуживание кода. Его легко обслуживать именно благодаря простому и лаконичному синтаксису. Все это — наследие Google. Поскольку у корпорации огромное количество кода для различных программных продуктов, а также десятки тысяч разработчиков, которые все это разбирают, то появляется проблема обслуживания. Код должен быть понятен всем, кто над ним работает, хорошо документированным и лаконичным. Все это возможно с Go.

При этом в Golang нет классов (есть структуры, struct), нет поддержки наследования, что значительно упрощает изменение кода. Плюс нет исключений, аннотаций и т.п.

Что можно написать на Go

Практически все, за исключением некоторых моментов (например, разработки, связанные с машинным обучением — здесь больше подходит все же Python с низкоуровневыми оптимизациями на C/C++ и CUDA).

Все остальное можно писать, особенно это актуально в отношении web-сервисов. Кроме того, на Go стоит разрабатывать приложения как для конечного пользователя, так и для разработки демонов, UI, он подходит для кроссплатформенных приложений и сервисов.

Востребованность Golang


С течением времени язык становится все более востребованным. Кроме тех компаний, что присутствуют на картинке выше, с Golang работают Mail.ru Group, Avito, Ozon, Lamoda, BBC, Canonical и другие.

«Мы решили масштабировать бизнес, нам важно построить принципиально новую технологическую платформу, которая обеспечит быстрое развитие продукта. Делаем ставку на Go из-за его скорости и надёжности, а главное — аудитории программистов, которая его использует», — заявили представители Ozon в 2018 году, после того как компания приняла решение перейти на Golang.

Ну а что насчет доходов заработная плата Go-разработчика в прошлом году составила в среднем 60-140 тыс. рублей по данным «Моего Круга». По сравнению с 2017 годом этот показатель увеличился на 8,3%. В 2019 году, скорее всего, рост продолжится, поскольку разработчики Golang нужны очень многим компаниям.

Что дальше?

Останавливаться в развитии Golang точно не будет. Потребность в хороших специалистах, которые знают этот язык, будет только возрастать, так что работу специалисту (начинающему или профи) найти будет несложно. В принципе, это утверждение актуально и сейчас, поскольку на рынке IT наблюдается постоянный дефицит разработчиков.

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

Статья готовилась совместно с преподавателем курса Golang в GeekBrains Сергеем Кручининым, за что ему огромное спасибо!

Язык Go в 2020 году

Язык Go сейчас находится в верхушке списка самых популярных языков программирования. Мы знаем, что энергичное, веселое и гостеприимное сообщество пользователей Go любит этот язык за его скорость и эффективность, но нам хотелось больше деталей. Мы внимательно изучили все, что известно о Go, и получили набор фактов. Затем мы попросили Флорина Патана, нашего эксперта по Go и девелопер-адвоката в команде GoLand, чтобы он поделился своим мнением об этих фактах и помог понять, каковы позиции Go сегодня.

Где программируют на Go

1,1 миллиона Go-разработчиков

Около 1,1 миллиона профессиональных разработчиков используют Go в качестве основного языка программирования. Но если учесть профессиональных разработчиков, которые пишут в основном на других языках и немного — на Go, то эта цифра увеличится до 2,7 миллиона.

Если говорить о распространении языка в мире, то популярнее всего Go в Азии: около 570 тыс. проживающих здесь разработчиков используют Go в качестве основного языка программирования. На втором месте Европа с 243 тыс., среди которых около 35 тыс. программистов — из России.

Примерно такое распределение по регионам я и ожидал увидеть. На мой взгляд, Азия лидирует потому, что здесь очень много разработчиков, нанятых такими крупными компаниями, как Tencent, Alibaba и Huawei. В этих компаниях в принципе работает огромное количество разработчиков.

Где именно

Диаграмма показывает территориальное распределение разработчиков, использующих Go в качестве основного языка программирования, согласно исследованию экосистемы разработки 2020 (участники опроса могли указать до трех языков). Самая высокая концентрация обнаружена в Китае — 16% разработчиков.

Я не удивлен, что Китай занимает первое место. Но на втором месте я ожидал бы увидеть Россию, а США — хотя бы в первой пятерке.

Вероятно, Китай возглавляет список просто потому, что там проживает огромное количество разработчиков. Многим известным мне компаниям (например, PingCAP, Tencent, Huawei) нужно много разработчиков для поддержки, разработки внутренних инструментов, инфраструктуры и сервисов бэкенда, совмещенных с микросервисами. Похоже, это ключевой фактор.

Я знаю, что в России очень классные Go-сообщества, поэтому неудивительно, что здесь так популярен этот язык. Я не ожидал, что такие высокие позиции займут Япония и Украина. А что касается Германии и Индии, я ожидал, что их рейтинг будет чуть выше. Помню, когда я был в Берлине четыре или пять лет назад, Go использовался практически в каждом стартапе.

Что происходит в индустрии

Согласно исследованию экосистемы разработки 2020, Go входит в десятку основных языков, используемых профессиональными разработчиками. Его доля составляет около 7%.

Go продолжает расти. Люди, как правило, не выбирают Go в качестве своего первого языка программирования, а скорее переходят на него с других языков, таких как PHP и Ruby, но в основном с C++ и C# (насколько мне известно).

Преимуществом Go перед PHP является типобезопасность: Go — статически типизированный язык, а PHP — динамический. Это значит, что компилятор делает большую часть работы за вас и обеспечивает, чтобы написанный вами код скомпилировался и мог выполняться без проблем. Преимущество Go перед C++ — простота. В Go все довольно понятно.

Go отличается своей скоростью — это заметно и при написании кода, и при его выполнении. В целом, Go позволяет повысить производительность в 5-10 раз без каких-либо оптимизаций с вашей стороны, это важное преимущество для компаний. Кроме того, язык простой, его легко освоить. А еще он позволяет с легкостью заменять микросервисы в проектах.

Многие инструменты для IT-инфраструктуры, такие как Kubernetes, Docker, Vault (и это только самые крупные), используют Go. Хотя многие компании работают с Java, зачастую у них также есть команды, которые пишут на Go — особенно для поддержки и патчинга проектов. И это, пожалуй, еще одна из причин роста популярности Go. Чем больше технологии будут вовлечены в инфраструктуру и развертывание, тем больше будет расти Go. Думаю, что в ближайшие несколько лет все больше людей начнет использовать Go и мы дойдем до отметки 15-20%. В исследовании экосистемы разработки мы задавали вопрос: "Планируете ли вы освоить или перейти на другой язык в ближайшие 12 месяцев? Если да, то на какой?" 13% респондентов назвали Go.

Какое ПО разрабатывают на Go

Самой популярной областью применения Go являются веб-сервисы: согласно результатам исследования экосистемы разработки 2020, в 36% случаев Go используется именно для веб-сервисов.

С веб-сервисами главной задачей является создание быстрых API-серверов. Здесь необязателен фреймворк, поэтому серверы можно быстро поднять и запустить при помощи Go.

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

Та же история мне видится с утилитами: с Go довольно легко писать небольшие приложения-утилиты и быстрые приложения, позволяющие обрабатывать большие объемы данных, а также решать разовые задачи, требующие больших мощностей. Стоит посмотреть и на IT-инфраструктуру. Чем больше используется Docker и Kubernetes, тем больше будет использоваться и Go, просто потому что обе технологии написаны на Go. Go удобен для DevOps, поскольку он обеспечивает типобезопасность и высокую производительность. Взаимодействовать с облачной частью инфраструктуры довольно просто: Google, Amazon и Azure обеспечивают хорошие SDK. Думаю, что в ближайшие годы с приходом дженериков можно также ожидать подъема в категории библиотек и фреймворков.

Что касается системного ПО, полагаю, здесь будет наблюдаться спад и люди будут постепенно переходить на что-то вроде Rust. То же самое для баз данных. Скорей всего, в будущем этот сегмент сузится (примерно до 6%). Инструменты для программирования — я удивлен, что они заняли такую высокую позицию в списке, и мне было бы интересно узнать, что за инструменты создают при помощи Go.

Основные области применения Go

Согласно исследованию экосистемы разработки 2020, большая часть Go-программистов работает в секторе IT-услуг; далее следуют сферы финансов и финансовых технологий, облачных вычислений и платформ и др.

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

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

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

Инструменты для Go

Менеджеры зависимостей

Go Modules — самый популярный менеджер пакетов среди Go-разработчиков. Согласно исследованию экосистемы разработки 2020, его популярность выросла с 41% (в 2019 году) до 82% (в 2020 году).

Думаю, скоро мы перестанем задаваться этим вопросом, потому что Go Modules станет стандартной моделью, а GOPATH перестанет поддерживаться — у команды Go есть такие планы. Все остальное, пожалуй, просто устареет.

Go-роутеры

Gorilla / Mux и стандартная библиотека с 2018 года и до сих пор остаются самыми используемыми Go-роутерами согласно исследованиям экосистемы разработки, проведенным в 2020 и 2018 годах.

Стандартная библиотека, пожалуй, популярна потому, что ее, как правило, рекомендуют на Reddit, в Slack и других источниках. Я лично использую gorilla/mux, поскольку этот пакет дает чуть больше абстракции по сравнению со стандартной библиотекой, при этом не слишком жертвуя производительностью. Кроме того, gorilla/mux очень близок к стандартной библиотеке и с помощью него проще писать серверы. В целом, это именно то распределение, которое я ожидал увидеть.

Топ-5 веб-фреймворков

Использование Gin с 2018 года выросло практически вдвое, остальные фреймворки по большей части остались на прежних позициях (согласно исследованиям экосистемы разработки, проведенным в 2020 и 2018 годах).

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

Фреймворки для тестирования

Доля разработчиков, использующих встроенные инструменты тестирования, упала с 64% (в 2018 году) до 44% (в 2020 году). В то же время мы видим небольшой рост популярности остальных фреймворков для тестирования.

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

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

Самые обсуждаемые инструменты Go и другие языки

Go много обсуждается IT-сообществом, в частности, на Stack Overflow. Мы взяли данные из раздела вопросов и ответов и посчитали, какие теги чаще всего встречаются вместе с «Go». Среди них оказалось 23 инструмента и 2 языка — «MySQL» и «PostgreSQL». Мы также посмотрели, как часто тег «Go» встречается с тегами других популярных языков. Вертикальная ось показывает количество появлений тегов, а горизонтальная — упоминания тегов с «Go».

На мой взгляд, с JSON действительно есть проблема. Переводить JSON в структуры данных Go и обратно — не так просто, вероятно, поэтому тема так популярна. Что касается struct, здесь дело в том, что разработчики, пришедшие из других языков, обычно с трудом вникают в эту тему (пожалуй, за исключением разработчиков на C/C++).

Я бы ожидал большого количества вопросов об Amazon Web Services, поскольку AWS очень популярны сами по себе. Теперь проще разрабатывать приложения на Go для Google App Engine (так было не всегда), поэтому об этом тоже много вопросов.

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

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

Хотите попробовать GoLand в вашей команде? Получите расширенную пробную версию для неограниченного количества пользователей.

Язык Go: когда его используют и нужно ли учить в 2022

Автор: Мария Грищенко

Go — относительно молодой, но популярный язык программирования. По данным GitHub он вошёл в пятерку самых востребованных языков на начало 2021 года, опередив PHP, TypeScript и C#. Разберёмся, где используют этот язык, и зачем нужен Go в 2022 году.

Особенности языка

Go или Golang — компилируемый многопоточный язык программирования. Это значит, что написанное на Go приложение выглядит как один полностью готовый к запуску файл.

Go — язык от Google

Язык Go создали в 2009 году в корпорации Google. Собственно, его полное название Golang — производное от «Google language».

Разработчики языка — Роб Пайк и Кен Томпсон. В прошлом они работали в легендарной лаборатории Bell Labs, выпустившей много технологий, которые кардинально изменили жизнь людей: транзистор, лазер, кварцевые часы, теорию информации, операционную систему UNIX и языки программирования C и C++ .

Цели проекта Go — сделать разработку программного обеспечения в Google не такой неуклюжей и медлительной, какой она была до него. И вместе с тем сделать сам процесс более продуктивным и масштабируемым.

Поэтому Go разрабатывали с учётом набора пока нерешённых задач. В него вложили базу лучших функций, взятых из языков Pascal, Modula и Oberon. Ещё опирались на C и C++, у которых взяли скорость исполнения программ , и Python, который был взят за образец простоты кода .

Изначально Go использовали только внутри Google, но затем он вышел из недр корпорации и ушёл в мир.

Чем хорош язык

Go создавался как язык программирования для « разработки высокоэффективных программ » в качестве альтернативы C и C++. Поэтому он избавился от многих недостатков этих языков программирования, вобрав в себя только самое лучшее.

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

Упрощенный синтаксис облегчает не только само программирование . Он позволяет быстро прочитать чужой код — это особенно важно в командной работе. Go читается как обычный текст в учебнике — слева направо. Не нужно вводить какие-то стандарты, обозначения или комментарии — вы и без этого поймёте код друг друга.

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

    . Утилита GoDoc найдёт все комментарии и сделает из них подробный мануал к программе.
  • инструменты тестирования . В Go есть множество инструментов тестирования: команда typecheck проверит соответствие типов в коде, golint даст рекомендации на основе официальной документации, gosimple упростит сложные синтаксические конструкции, а gas найдёт уязвимости.

Большое количество библиотек. Библиотеки есть практически под любую задачу. Многое можно реализовать, используя только стандартную библиотеку Go. Помимо неё, язык поддерживает и много сторонних библиотек, количество которых постоянно растет. А еще эффективно взаимодействует с библиотеками C и C++. Даже отмечают, что Go-библиотеки — это, по факту, «обертки» над С-библиотеками.

Высокая производительность и безопасность. Хорошая производительность заметна и при написании кода , и при его выполнении. В целом Go позволяет повысить производительность в пять-десять раз без каких-либо оптимизаций.

При этом язык отличается надёжностью. Дело в особой функции — сборщике мусора. Он сканирует код и определяет объекты, замедляющие его работу, а затем удаляет их. Таким образом сборщик мусора обеспечивает безопасность памяти, сохраняя при этом высокую скорость исполнения программ и помогая эффективно использовать ресурсы.

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

Но главное — в Go предусмотрены дополнения, которые делают его таким удобным для новичков:

    — помогает обнаружить возможные ошибки в коде. — помогает правильно форматировать код, проставить табы для отступа и пробелы для выравнивания.
  • команда gofix — помогает отслеживать и удалять устаревшие конструкции.

Более того, сам Go исправляет ошибки и напоминает правила. Здесь вопросы вроде нужно использовать фигурные скобки или нет, отпадают сами собой — язык буквально «ведёт» за руку по всему процессу, не давая оступиться.

Дружелюбное сообщество. Go — это проект с открытым исходным кодом и большим сообществом, участники которого постоянно создают новые инструменты для языка и активно продвигают его в IT-индустрии. При этом комьюнити очень дружелюбное и гостеприимное — новичкам здесь рады, всегда помогут и подскажут.

Востребованность языка

Программистов на Golang с каждым годом становится всё больше. Около 1,1 миллиона разработчиков по всему миру используют Go как основной. Ещё 2,7 используют его как дополнительный к другому языку. В России насчитывается около 35 тысяч Go — разработчиков .

О востребованности языка говорит и возросшее количество вакансий. По исследованиям hh.ru в 2020 году количества вакансий по Go в 2020 по сравнению с предыдущим годом увеличилось 45%.

С Go работают веб-агентства, аутсорсинговые компании- разработчики и бизнес. Язык всё чаще используют известные IT-корпорации, которые решились пере писать собственный код.

Крупные компании, которые используют Go

Зарубежные: SAP, IBM, Google, Walmart, Dell, Intel, HP, RedHat, Microsoft, Adobe, BBC, Uber, Dropbox, Netflix, Twitter

Российские: «Яндекс», «ВКонтакте», Mail.ru Group, Avito, Ozon, Lamoda, «Ростелеком», «Ситимобил», Delivery Club

Работодатели буквально «охотятся» за Go-разработчиками — они пока на рынке в дефиците. От того им и готовы предложить большие зарплаты.

Этим летом крупнейший российский онлайн-ритейлер Ozon открыл целую школу Golang School Ozon, где будет обучать программировать конкретно на Go . А в 2018 году Ozon заявил, что готов принять на работу сразу 200 Go -разработчиков и активно искал таких специалистов

онлайн-ритейлер Ozon открыл целую школу Golang School Ozon

Неслучайно Golang оказался самым высокооплачиваемым языком программирования по итогам 2020 года. Средняя зарплата у Go — разработчиков составляет 170 000 рублей в месяц.

Golang — самый высокооплачиваемый язык программирования 2020 года. Данные «Хабр Карьера»

Golang — самый высокооплачиваемый язык программирования 2020 года. Данные «Хабр Карьера»

Что пишут на Go

Go считается универсальным языком. Но всё-таки больше ориентирован на облачное программирование и разработку операционных систем. А главенство здесь принадлежит веб-сервисам.

В 36% случаев Go используют именно для разработки веб-сервисов

В 36% случаев Go используют именно для разработки веб-сервисов. Данные исследования JetBrains

Go — простой язык, но позволяет делать очень сложные вещи. На нём можно быстро написать высоконагруженное, многопоточное, кроссплатформенное приложение . Основная сфера применения языка — сетевое программное обеспечение, утилиты и бэкенд.

Вот что конкретно можно сделать на Go.

Сетевое программное обеспечение

Назначение сетевого ПО — организовать совместную работу группы пользователей на разных компьютерах. Такое ПО позволяет организовать файловую структуру и базы данных таким образом, чтобы они были доступны всем участникам.

При этом устройства необязательно должны находиться в одном помещении. Они могут располагаться на разных адресах и даже разных континентах.

Благодаря скорости и маленькому потреблению памяти Go хорошо ложится в такую распределённую систему и помогает создавать платформы для работы удалённых команд.

Сетевая платформа Consul, написанная на Go

Сетевая платформа Consul, написанная на Go

Утилиты и микросервисы

Go отличается чёткой направленностью. Его главное предназначение — некрупные сервисы, которые нужно быстро внедрить и которые при этом должны отличаться высокой надежностью — так называемое robust software. Поэтому язык подойдёт для консольных утилит и микросервисных приложений.

Sampler — консольная утилита, которая позволяет визуализировать любую метрику из написанного кода

Gizmo — набор веб-фреймворков от New York Times, которые помогают разработчикам быстро настраивать и создавать API микросервисов

Docker — один из самых известных проектов, написанных на Go

Docker — один из самых известных проектов, написанных на Go . Это ПО для автоматизации развёртывания и управления приложениями, которым пользуются программисты по всему миру

Быстрые версии медленных приложений

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

Приложения для DevOps

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

система мониторинга Prometheus

На Go сделана система мониторинга Prometheus, выпущенная в 2012 году для мониторинга музыкальной социальной сети SoundCloud

Инструменты для финансов и облачных вычислений

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

почти все приложения британского банка Monzo написаны на G

Инфраструктура и почти все приложения британского банка Monzo написаны на Go . Изображение: Monzo

Игровые движки

Go не задумывался как язык для написания игр. Но нём уже создали несколько игровых движков: GarageEngine, Azul3D и GOSFML. А ещё язык позволяет писать серверы для многопользовательских игр и разные игровые сервисы типа сохранения и статистики.

Greenlight — массовая многопользовательская онлайн-игра, сервер которой написан на Go

Вирусы

Интересно, что за последние несколько лет количество вирусов на языке Go выросло примерно на 2000%.

Червь FritzFrog, поражающий серверы, сделан на Go

Червь FritzFrog, поражающий серверы, сделан на Go

Для чего Go не подойдёт

А вот с созданием графических интерфейсов в Golang дела не очень. Он может работать с инструментами, улучшающими их архитектуру и внешний вид: библиотекой GTK и фреймворком Qt, но о решения получаются громоздкими.

Не подходит язык и для разработок, связанных с машинным обучением: здесь всё-таки стоит брать тот же Python, который гораздо лучше обрабатывает большой массив данных.

Стоит ли учить Go в 2022

Определённо стоит. Go — мощный, безопасный и очень востребованный язык программирования. Он способен повысить производительность программы в пять-десять раз без каких-либо оптимизаций.

Подробная и понятная документация, лёгкий синтаксис, дружелюбное сообщество — Go быстро освоит даже новичок.

Начинающим разработчикам стоит изучать Golang в качестве первого языка. Он простой, не позволяет совершать ошибок, заставляет придерживаться лаконичности и даёт подсказки.

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

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

Останавливаться в развитии Golang точно не будет. Это способствует, опять же, активное комьюнити, которое создаёт всё новые и новые инструменты, пакеты, фреймворки, драйверы, API и генераторы кода для языка.

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

А к концу 2021 года обещают выпустить следующую базовую версию языка — Go 2.0 со специальным синтаксисом для упрощения обработки ошибок и другими новшествами.

Вики-страница «Go 2.0» на GitHub

Вики-страница «Go 2.0» на GitHub, где собирают замечания и предложения по улучшению языка

Как освоить Go

Если вы решили освоить программирование на Go с нуля, можно начать с официального руководства . А затем разбирать примеры, читать книги или смотреть видеоуроки.

Но быстрее и эффективнее изучать Go на курсах. Ведь главное здесь — «набить руку» и больше заниматься практикой. А не тратить время на поиск ответов на сайтах и в руководствах.

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

Предлагаем вам три популярных курса от ведущих онлайн-школ:

  • Курс « Go -разработчик PRO» от Skillbox . За восемь месяцев вы освоите язык Go на продвинутом уровне и сможете проектировать, тестировать, развёртывать и поддерживать веб-сервисы. А в качестве дипломной работы самостоятельно создадите картографический сервис с функциями построения и сохранения маршрутов.
  • Профессия«Backend-разработчик на Go»от Skillfactory . Практический годовой курс. Вы научитесь писать на Go серверную часть сайтов и приложений, проектировать базы данных и выстраивать микросервисную архитектуру. Вы положите в портфолио новостной агрегатор, который сделаете сами.
  • Факультет « Go — разработки » от GeekBrains . В течение двух лет вы досконально будете изучать синтаксис Go и принципы программирования. А затем закрепите полученные знания на многочисленных практических занятиях. Тем, кто дойдёт до конца, помогут с трудоустройством.

Если ни один из перечисленных курсов вам не подошёл — пишите в комментариях. Мы с радостью поможем вам подобрать программу с наиболее удобными для вас условиями и скидками.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *