Golang

Сегодня я хочу поговорить не о чем ином как о 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 году и в будущем. 

Уровень зарплат с https://www.itjobswatch.co.uk/jobs/uk/go.do

Читайте также:


Перевод статьи Luke Prendergast: What’s the Deal With Golang?