Телеграм-канал основателя Checkroi — Вани Буявца

Посмотреть →
Агрегатор онлайн-курсов Checkroi.ru Блог Статьи о программировании Язык Go: когда его используют и нужно ли учить в 2023

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

от Мария Грищенко
Опубликовано: Страница обновлена: 2287 просмотров Время прочтения: 16 минут

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 предусмотрены дополнения, которые делают его таким удобным для новичков:              

  • утилита Go Vet — помогает обнаружить возможные ошибки в коде. 
  • команда gofmt — помогает правильно форматировать код, проставить табы для отступа и пробелы для выравнивания. 
  • команда 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. А ещё язык позволяет писать серверы для многопользовательских игр и разные игровые сервисы типа сохранения и статистики. 

YouTube video player

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 и принципы программирования. А затем закрепите полученные знания на многочисленных практических занятиях. Тем, кто дойдёт до конца, помогут с трудоустройством. 

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

Телеграм-канал Вани Буявца, только внизу
2 Коментария
1

Почитаем еще?

Оставьте комментарий

2 комментария

Александр Вощанов

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

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

Что с большими данными то в итоге? Может или не может?

Ответить
Автор: Андрей Воронцов
Андрей Воронцов

Здравствуйте, Александр!
Python чаще используют при работе с big data. Go тоже используют, но реже.
И Python и Go сейчас отличный выбор. Оба популярные и высокооплачиваемые.

Ответить

Мы иногда используем cookie-файлы, чтобы получше узнать вас и персонализировать контент :) Замечательно!