Зачем нам Golang, если есть С?
Пока кто-то в 2007 подпевал Animal ДжаZ, в Google шла работа над новым языком программирования — Golang. Предполагалось, что он поможет сотрудникам компании сделать разработку ПО быстрой. Это некий упрощенный аналог С и С++ для тех, кто занимается web-разработкой.
В основном его используют в таких сферах, как сетевое программное обеспечение и утилиты (например, такая маленькая утилита как Kubernetes). Микросервисы на Go разрабатываются легко и органично, а вот с монолитами сложнее. Этим и обусловлен его выбор для современного бэкэнда.
Язык еще молодой, поэтому, конечно, есть противники среди приверженцев старой школы. Но если отбросить эмоции, стоит ли вообще изучать Go?
Немного цифр
В 2009 году миру презентовали Golang. В 2012 он пошел в массы.
После первого релиза прошло почти 13 лет, и сейчас Go входит в двадцатку самых востребованных языков программирования. Сейчас на нем пишут примерно 2,7 млн разработчиков.
Динамику популярности можно проследить на этом графике.
Особой популярностью Go пользуется в Азии. Согласно исследованиям, в Китае им интересуются чаще всего.
По последним данным, в России насчитывается около 35 тыс. Go-разработчиков. Сравнительно немного, но если смотреть в масштабах будущего, то здесь есть огромный потенциал для того, чтобы влететь и стать ценным специалистом.
На сайте hh.ru сейчас можно найти более 1500 вакансий по запросу “Разработчик Go” и ещё 1100 — по запросу “Разработчик golang”.
Пока что спрос на специалистов по Go превышает предложение. На рынке их не так много, а вот компаний, ведущих разработку на Golang хватает.
Что можно писать на Go
Вообще Golang универсален и предоставляет набор инструментов для решения почти любых задач, но его сильная сторона — это web и многопоточные приложения.
Сетевое ПО
Go очень быстрый и потребляет мало памяти. А это как раз то, что надо когда дело касается организации совместной работы пользователей на разных компьютерах.
Сделать медленное приложение быстрым
Приложения на Go работают быстрее за счет нативной компиляции. Многопоточность встроена в язык нативно и без внешних костылей, код легко пишется и модифицируется. Именно поэтому многие компании переводят свои сервисы на этот язык.
Утилиты и микросервисы
Главное предназначение Go — некрупные сервисы. За счет принципа простоты Go на нем трудно писать большие приложения (как на Java). Получается, что его парадигма обеспечивает разработку ограниченного функционала и небольшой кодовой базы одного приложения. Так сказать Unix-way — одно приложение должно делать одну задачу и делать ее хорошо. Поэтому он отлично подходит для консольных утилит и микросервисных приложений.
Приложения для финансов
Go используют банки для построения масштабируемых клиентоориентированных сервисов с меньшими затратами на инфраструктуру.
Приложения для DevOps
Благодаря минимальному оверхеду и компилируемости в машинный код, Go используют для мониторинга и сбора аналитики, обработки аналитики, написания утилит хелперов, а также в облачной инфраструктуре.
Крупные компании, которые используют Golang
Как мы уже говорили выше, Go — это язык, который отлично подходит для веб-разработки. У него не такой широкий спектр применения, как у С и С++. Но зато он упрощает работу с вебом.
Поэтому его чаще используют компании, в которых основной функционал — это web.
- Ozon
- НР
- Dell
- Lamoda
- Ситимобил
- ВКонтакте
- Яндекс
- Avito
- Microsoft
Список можно продолжать долго. К слову, многие из перечисленных компаний внедрили Golang сразу после его презентации.
Плюсы и минусы Go
Идеальным быть невозможно, поэтому и у Golang есть и плюсы, и минусы. Главная фишка этого языка заключается в том, что он довольно простой и быстрый — именно для этого он и разрабатывался.
Преимущества:
- Go придерживается минимализма. Именно поэтому его легко выучить, на нем легко писать. Особенно, если вы ранее уже имели дело с разработкой.
- Простой синтаксис и маленькое количество ключевых слов.
- Есть встроенные инструменты для исправления ошибок.
- Быстро компилируется. Запускается почти мгновенно, поэтому вам не придется долго ждать процесса компиляции.
- Есть большое количество библиотек.
Недостатки:
- Упрощенный синтаксис — это и плюс, и минус одновременно. Не хватает современных ООП-конструкций.
- Не подходит для разработки крупных проектов.
Громких слов о том, что за Golang будущее не будет. Объективно он не сможет заменить тот же С, С++ или Java. Но это неплохой язык для web-разработки и простых задач.