Сегодня я хочу поговорить не о чем ином как о Golang. Как и в случае с Node.js, термин Golang встречается мне несколько раз в день. “Найди людей, у которых есть любой опыт работы с Golang” — очень распространенная фраза.
Почему Golang так востребован? Почему разработчики на Golang зарабатывают больше других и почему так много разработчиков переходят на Golang в своих будущих проектах?
Сейчас у меня довольно много свободного времени и я думаю разобраться, почему этот язык такой популярный и почему он так хорош.
История
Перед тем как погрузиться в тонкости языка, стоит понять, откуда он появился и сколько времени ему потребовалось, чтобы стать новым хитом мира разработки.
Сам Go был разработан в 2007 году и выпущен в 2009 как язык программирования с открытым кодом. Он был разработан для преодоления сложности современных серверных языков, таких как C, C++ и Java. Разработчики, создавшие его, чувствовали, что серверные языки недостаточно развились с момента создания.
Повсеместное введение многопроцессорных вычислений подало им идею создания современного языка бэкенда, способного эффективно использовать многопроцессорность и решать сложные задачи облачных вычислений.
Также стоит упомянуть, что Go был создан разработчиками Google, которыми сейчас и поддерживается. Если за спиной одна из крупнейших компаний в мире, язык точно никуда не денется в ближайшее время. Этот язык также используют такие крупные компании как Dropbox, Soundcloud, Docker и BBC.
Почему он хорош?
Golang — компилируемый язык, что отражается на скорости, но ощущается как интерпретируемый по простоте. Вы можете писать код быстро наряду с высокой скоростью компиляции. Язык бэкенда, позволяющий быстро писать и компилировать код, экономит компаниям время и деньги во время всей сборки приложения (хотя разработчикам Go и платят огромные деньги).
Документация Golang очень обширна и быстро обновляется. Я встречал людей, которые утверждали, что специфические свойства Go изучаются всего за один день. Кривая обучения для стандартной библиотеки и написания HTTP-сервера значительно более щадящая, чем для Java, Javascript или Python.
Golang также довольно ограниченный. Кому-то это нравится, кому-то нет. Существует только один тестовый фреймворк, встроенный в язык, и, кажется, всего несколько путей решения проблем и сборки приложений. Возможно, это хорошо, так как существует почти что руководство, которому все могут следовать. Это в свою очередь экономит кучу времени и помогает создать простой план действий при сборке нового приложения. Связано это с тем, что в языке очень мало структур данных, кроме map и slice. Я считаю это полезным, так как ограничения способствуют креативности. В сравнении с Ruby, огромное количество методов и различных путей достижения одних и тех же целей или задач может быть пугающим и приводить к путанице при чтении кода другими людьми.
Параллелизм — большой плюс для языка. Об этом пишут везде. Параллелизм — это, по сути, разбиение крупного приложения на маленькие программы, которые запускаются одновременно. Это означает, что Go может запускать тысячу мини-программ в рамках монолитной программы, сохраняя при этом впечатляющую скорость, и обрабатывать огромное количество запросов в любой момент времени.
Последнее, но не менее важное—диапазон зарплат, мое любимое. Посмотрите на график ниже. Прекрасно видно, что средняя зарплата разработчика Go очень даже ничего. В 2019 самая низко оплачиваемая позиция составляла $40k, при средней зарплате $70k (с опытом более трех лет).
Со своей доступностью, кривой обучаемости, перспективностью и достойной оплатой Go выглядит весьма хорошим языком для изучения в 2019 году и в будущем.
Читайте также:
- Введение в каналы Golang
- Golang — изящная обработка ошибок
- Как реализовать древовидную сортировку в стандартной библиотеке Go
Перевод статьи Luke Prendergast: What’s the Deal With Golang?