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-разработчиков и активно искал таких специалистов
Неслучайно Golang оказался самым высокооплачиваемым языком программирования по итогам 2020 года. Средняя зарплата у Go–разработчиков составляет 170 000 рублей в месяц.
Golang — самый высокооплачиваемый язык программирования 2020 года. Данные «Хабр Карьера»
Что пишут на Go
Go считается универсальным языком. Но всё-таки больше ориентирован на облачное программирование и разработку операционных систем. А главенство здесь принадлежит веб-сервисам.
В 36% случаев Go используют именно для разработки веб-сервисов. Данные исследования JetBrains
Go — простой язык, но позволяет делать очень сложные вещи. На нём можно быстро написать высоконагруженное, многопоточное, кроссплатформенное приложение. Основная сфера применения языка — сетевое программное обеспечение, утилиты и бэкенд.
Вот что конкретно можно сделать на Go.
Сетевое программное обеспечение
Назначение сетевого ПО — организовать совместную работу группы пользователей на разных компьютерах. Такое ПО позволяет организовать файловую структуру и базы данных таким образом, чтобы они были доступны всем участникам.
При этом устройства необязательно должны находиться в одном помещении. Они могут располагаться на разных адресах и даже разных континентах.
Благодаря скорости и маленькому потреблению памяти Go хорошо ложится в такую распределённую систему и помогает создавать платформы для работы удалённых команд.
Сетевая платформа Consul, написанная на Go
Утилиты и микросервисы
Go отличается чёткой направленностью. Его главное предназначение — некрупные сервисы, которые нужно быстро внедрить и которые при этом должны отличаться высокой надежностью — так называемое robust software. Поэтому язык подойдёт для консольных утилит и микросервисных приложений.
Sampler — консольная утилита, которая позволяет визуализировать любую метрику из написанного кода
Gizmo — набор веб-фреймворков от New York Times, которые помогают разработчикам быстро настраивать и создавать API микросервисов
Docker — один из самых известных проектов, написанных на Go. Это ПО для автоматизации развёртывания и управления приложениями, которым пользуются программисты по всему миру
Быстрые версии медленных приложений
В последние годы наметилась интересная тенденция — многие компании переводят свои сервисы с другого языка на Go. Причина в том, что приложения на Go работают быстрее, более производительны и менее требовательны к аппаратным ресурсам. При этом код на Go легко писать, модифицировать и обслуживать.
Приложения для DevOps
На Go можно создавать удобные и мощные приложения для решения задач, связанных с обработкой больших объёмов данных. Его используют для блокчейн-проектов, анализа статистики, обработки данных и создания парсеров. Опять же, здесь ключевую роль сыграла нетребовательность к ресурсам.
На Go сделана система мониторинга Prometheus, выпущенная в 2012 году для мониторинга музыкальной социальной сети SoundCloud
Инструменты для финансов и облачных вычислений
Многие банки используют Go в разработке приложений для своей инфраструктуры, для финансовых и облачных вычислений.
Инфраструктура и почти все приложения британского банка Monzo написаны на Go. Изображение: Monzo
Игровые движки
Go не задумывался как язык для написания игр. Но нём уже создали несколько игровых движков: GarageEngine, Azul3D и GOSFML. А ещё язык позволяет писать серверы для многопользовательских игр и разные игровые сервисы типа сохранения и статистики.
Greenlight — массовая многопользовательская онлайн-игра, сервер которой написан на Go
Вирусы
Интересно, что за последние несколько лет количество вирусов на языке Go выросло примерно на 2000%.
Червь 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
Если вы решили освоить программирование на Go с нуля, можно начать с официального руководства. А затем разбирать примеры, читать книги или смотреть видеоуроки.
Но быстрее и эффективнее изучать Go на курсах. Ведь главное здесь — «набить руку» и больше заниматься практикой. А не тратить время на поиск ответов на сайтах и в руководствах.
На курсах по Go вы как раз и сможете попробовать решать реальные задачи на этом языке. А если у вас возникнет какой-то вопрос, вы всегда можете задать его практикующим разработчикам.
Предлагаем вам три популярных курса от ведущих онлайн-школ:
- Курс «Go-разработчик PRO» от Skillbox. За восемь месяцев вы освоите язык Go на продвинутом уровне и сможете проектировать, тестировать, развёртывать и поддерживать веб-сервисы. А в качестве дипломной работы самостоятельно создадите картографический сервис с функциями построения и сохранения маршрутов.
- Профессия «Backend-разработчик на Go» от Skillfactory. Практический годовой курс. Вы научитесь писать на Go серверную часть сайтов и приложений, проектировать базы данных и выстраивать микросервисную архитектуру. Вы положите в портфолио новостной агрегатор, который сделаете сами.
- Факультет «Go–разработки» от GeekBrains. В течение двух лет вы досконально будете изучать синтаксис Go и принципы программирования. А затем закрепите полученные знания на многочисленных практических занятиях. Тем, кто дойдёт до конца, помогут с трудоустройством.
Если ни один из перечисленных курсов вам не подошёл — пишите в комментариях. Мы с радостью поможем вам подобрать программу с наиболее удобными для вас условиями и скидками.
2 комментария
В плюсах написано, что связанных с обработкой больших объёмов данных. Его используют для блокчейн-проектов, анализа статистики, обработки данных
В минусах он не подойдет так как:
стоит брать тот же Python, который гораздо лучше обрабатывает большой массив данных.
Что с большими данными то в итоге? Может или не может?
Здравствуйте, Александр!
Python чаще используют при работе с big data. Go тоже используют, но реже.
И Python и Go сейчас отличный выбор. Оба популярные и высокооплачиваемые.