Почему бизнес охотится на разработчиков Golang

Рассказываем, как получилось, что разработчики считают язык Go простым, а работодатели готовы платить за него высокую зарплату и нанимать по 200 программистов сразу.

Будь проще

Популярность Go резко выросла за последние два года по всему миру, согласно рейтингу TIOBE, который оценивает интерес к языкам программирования по количеству поисковых запросов.

Он даже стал языком года в 2016 году — уже второй раз после 2009 года, когда его только презентовала Google. Тогда его создатели объясняли, что хотели создать простой язык. Кроме того, нужно было совместить в нём скорость разработки таких динамических языков, как Python, с производительностью и безопасностью компилируемых — как C и C++.

Создатели Go считали, что из-за сложности языков программирования «создавать ПО становится труднее, несмотря на то, что компьютеры развиваются». Представляя Go, авторы часто цитировали одного из создателей языка Common Lisp Ричарда Габриэля: «Меня всегда восхищала лёгкость и чистота ранних языков программирования. Немного текста, но делается много. Кто бы мог подумать, что развитие и усложнение принесёт столько шума?».

Суть в том, что наши программисты — гуглеры, а не исследователи. Они, как правило, довольно молоды, недавно закончили учиться, вероятно, изучили Java, C или C++ или Python. Они не способны понять сложный язык, но мы всё равно хотим использовать их для создания хорошего программного обеспечения. Таким образом, мы им предлагаем язык, который они быстро поймут и к которому легко привыкнут.

Роб Пайк, один из разработчиков Go

У Go действительно низкий порог вхождения — это его главное преимущество. Изучить язык сможет даже новичок, просто читая код в стандартной библиотеке. Go — аскетичный язык, он прост в синтаксисе и располагает доскональной документацией.

Go достаточно «близок к железу». Как и язык С, он закладывает базовое понимание устройства компьютера и операционной системы: работа с памятью, многопоточность и синхронизация процессов. Поэтому он отлично подходит для первого в жизни языка программирования, даже если потом разработчик выберет другой для постоянной работы.

Что касается программистов, которые уже имеют опыт работы на любом C-подобном языке (C, C++, Java, PHP и другие), они перейдут на Go, изучая опыт коллег-гоферов и, возможно, повторяя основы компьютерных технологий.

Сергей Камардин, Go-разработчик и куратор интенсива Go Workshop

Люди потянутся

Go занимает третье место в рейтинге языков, которым программисты хотят пользоваться чаще в 2018 году, по данным опроса Stack Overflow. Это неудивительно: в среднем во всём мире разработчики Go получают одну из самых высоких зарплат даже при небольшом опыте работы. Так, с опытом около семи лет программист получает в среднем более $75 тысяч в год (около 5 млн рублей).

В России по итогам 2017 года зарплата Go-разработчика стала самой высокой среди программистов, по данным соцсети для поиска работы в ИТ-индустрии «Мой круг». Middle-разработчикам Go компании предлагают зарплату в среднем от 80 до 120 тысяч рублей. Lead может заработать от 130 до 200 тысяч рублей, а иногда предложение доходит и до 300 тысяч.

Большие зарплаты — это всегда признак того, что предложения на рынке меньше, чем спроса со стороны работодателей. «Судя по трендам на российском рынке труда, популярность Go ещё будет набирать обороты. Это обусловлено тем, что Go смог занять большую часть рынка веб-приложений, который в ближайшем будущем будет расти», — считает Камардин.

Go-разработчиков сейчас всё больше нанимают крупные компании, которые решились переписать собственный код. Этот тренд пришёл и в Россию: онлайн-ритейлер с 20-летней историей Ozon недавно объявил о том, что готов принять на работу 200 разработчиков Go.

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

Причина проста: новые языки программирования привлекают людей, которые в принципе интересуются тем, что они делают, и стремятся делать это лучше.

Российское комьюнити разработчиков Golang активно расширяется, всё больше специалистов интересуются развитием в этом направлении. Однако опытных пока мало, а звёздную команду из новичков не соберёшь. Да и конкуренция на рынке высока, многие компании обращают внимание на Golang: Mail.Ru Group, Wildberries, Avito, Lamoda.

Мы стараемся мотивировать специалистов интересными задачами, демократичной атмосферой, возможностями для развития и комфортными условиями — офис класса А, кофе, фрукты и пятничные вечеринки как приятный бонус.

Алина Рулевская, HR-менеджер Ozon.Travel

Сейчас многим компаниям приходится признать, что они используют неудобные технологии, которые удерживают их от развития. Перед ними стоит необходимость перейти на новую, но чаще всего её довольно дорого поддерживать — на рефакторинг кода тратятся большие человеческие ресурсы. Go в таком случае становиться идеальным компромиссом: выучить или переучиться на него может любой программист, а код не сложно обслуживать.

0
43 комментария
Написать комментарий...
Sam Beckett
Middle-разработчикам Go компании предлагают зарплату в среднем от 80 до 120 тысяч рублей. Lead может заработать от 130 до 200 тысяч рублей

Но погодите, это ведь стандартные зарплаты C#, Java и даже php-программистов

Ответить
Развернуть ветку
Владимир

Тсссс, мешаете хайпануть...

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Дмитрий Васин

Да что уж там, с универа как выходишь, меньше 300 тысяч уже и не предлагают!

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Евгений Алленов

Да даже фронты столько получают.

Ответить
Развернуть ветку
Sam Beckett

Ну "даже" про фронтов я бы не стал говорить, сейчас фронт - это не версточка с css, там вполне себе серьезное программирование )

Ответить
Развернуть ветку
Евгений Алленов

Я про это слышал ))) Тк сам синьор фронт. Но я больше про невысокий порог вхождения в профессию.

Ответить
Развернуть ветку
Sam Beckett
Тк сам синьор фронт

Мое увожение синьору фронту!

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Sam Beckett

Вот это ты шутканул! Прям на все деньги

Ответить
Развернуть ветку
Евгений Алленов

😂

Ответить
Развернуть ветку
AS

Ну хз, мне, как мобильному разработчику с опытом бэкендера фронт даётся тяжело из-за «особенностей» JS.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Евгений Алленов

Более того, есть ещё куча библиотек не входящих в этот хипстерский список, но нужный крайне на некоторых ролях, так что ты наверное назвал список из «модного приговора» :(

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Евгений Алленов

В твоём случае вероятно :)

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Евгений Алленов

Нет :)

Ответить
Развернуть ветку
Евгений Алленов

Это в зависимости от уровня набор мидла или Лида от 150-180 и выше. Для 120 спрос много ниже

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Евгений Алленов

Да, net

Ответить
Развернуть ветку
К М

да net мейби

Ответить
Развернуть ветку
Nikita Kriuchkov

"....они используют неудобные технологии, которые удерживают их от развития", ЯП здесь не причем, удерживают их от развития в основном технический долг и отсутствие документации. У Go есть свои плюсы, как и минусы, например, писать юнит-тесты на нем не очень удобно, т.к. замокать что ты хочешь просто так нельзя.

Ответить
Развернуть ветку
Владимир

Даа, всех проще мокать в JS 8)

Ответить
Развернуть ветку
Nikita Kriuchkov

Что есть, то есть. Слабая типизация зло. Но если сравнивать, с точки зрения решения бизнес-задач, например, golang и clojure, второй значительно удобнее и приятнее. Но попробуй найди вакансии на clojure

Ответить
Развернуть ветку
Владимир
Слабая типизация зло

Есть TypeScript, везде использую, нереально помогает

Ответить
Развернуть ветку
Вася Бездомный

Гонят волну чтобы повысить количество спецов на рынке и уронить зарплаты.

Ответить
Развернуть ветку
Nikita Kriuchkov

Проще, скрытая реклама курсов

Ответить
Развернуть ветку
Алексей Кулешов

Сейчас вокруг Go много шума, а вот нормальных вакансий намного меньше чем в Java или C#. И если эти вакансии внимательно почитать, то опять же все ищут опытных инженеров с других платформ. Может быть синтаксис Go изучается быстро, но ведь программирование это совсем не про это: изучение алгоритмов, хорошего дизайна кода и тест дизайна, современной инфраструктуры (контейнеры, докеры, бд, гриды, трейсеры и пр.) требуют годы практики.

Ответить
Развернуть ветку
Павел Орчид

"безопасностью компилируемых — как C" - чего-то безопасность это не совсем про C

Ответить
Развернуть ветку
Ruslan Khasanbaev

О да golang отличный язык и инфраструктура отличная - пакетный менеджер официальный убог. При том что язык типизированный в нем нет дженериков, адепты скажут что они не нужны, но те кто действительно пишет код используют кодогенераторы, что как бы намекает на силу и мощь языка, где приходится использовать такие костыли...

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Anton

гоу в Котлин, теже каналы рутины) и нет говно синтаксиса

Ответить
Развернуть ветку
Sergey Gotsulyak

Надо отдать должное разработчикам Go - криптографические и сетевые библиотеки для языка гораздо более качественные и востребованные, чем, например, для Python или Node.js.

Ответить
Развернуть ветку
Игорь Кравченко

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

Ответить
Развернуть ветку
Dart Mul

Go:
Идея: 5, реализация: 3

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Sergey Gotsulyak

Основной вопрос к языку - почему отцы-основатели отошли от привычного синтаксиса Си при определении структур и управляющих конструкций. ИМХО, стоило сохранить совместимость, как и в случае не самой лучшей раскладки QWERTY для клавиатур :)

Ответить
Развернуть ветку
К М

Смотрел тесты производительности С++, Java, Ruby, Go, Python. Go по требуемым ресурсам (память) и скорости работы получается же аутсайдер, почему тогда компании так активно его применяют? Я еще понял бы если бы речь шла о специфическом применении, как например Perl, но тут ведь этого нет.

Ответить
Развернуть ветку
Nikita Kriuchkov

GC Java самый прожорливый (без настроек) и Вы хотите сказать, что он потребляет меньше памяти? Очень интересно взглянуть на эти тесты. Я тогда Вам более полно отвечу.

Ответить
Развернуть ветку
К М
Ответить
Развернуть ветку
Nikita Kriuchkov

1.
Да, было дело. Но история все расставила на свои места. Достаточно перейти на оригинал самого отчета как мы увидим дискуссию, где другой уже Google, предоставил отчет, как и где Роберт Хандт ошибся в своем исследовании https://blog.golang.org/profiling-go-programs

2.
Тест так себе, я бы даже сказал заведомо(но это не точно) сфабрикованный в пользу Java приложения.

https://github.com/nikitsenka/bank-go
Используется стандартный JSON модуль, который медленнее easyjson в 50x раз и медленный роут от gorilla. Много функций вывода fmt.Println.

Но сфабрикован он не из-за этого, а из-за того, что функции получения информации совершенно разные у приложений, golang приложению приходиться создавать соединение с базой данных каждый раз, как происходит запрос к сервису, когда java приложение использует пул соединений.

Но я думаю большенство читателей не будут лезть в код и смотреть бенчмарк, поэтому заголовок годный что там, что там, но не отражает сути.

p.s. Хоть я и пишу 90% времени на golang, мне очень нравиться писать прикладные вещи на Clojure (который крутиться на JVM). Да, JVM оптимизирован и не уступает по производительности Go, но накладные расходы на абстракции, там очень велики. Но писать сложную бизнес-логику на Go, то еще удовольствие

Ответить
Развернуть ветку
Максим Федоров

Простота... В куче проектов на пыхе и руби узкие места закрывает, демоны повесил и сидит себе перерабатывает...

Ответить
Развернуть ветку
Tom Riddle

ease Go ease//

Ответить
Развернуть ветку
Алексей Горячев

Стильно, модно, молодежно птомчт?

Ответить
Развернуть ветку
Vitold S.

Интересно, а о каких вакансиях идет речь? Видел на Golang две или три вакансии для зажиревших PHP сайта, а никаких этих ваших спросах слыхом не слыхано.

Ответить
Развернуть ветку
Николай Лещёв

В каком месте "охотится"? Кроме Озона его вроде никто не юзает. Смотрел тут на досуге. Синтаксис убогий. Строгая типизация вносит кучу говнокода. Лямбды имеют просто отвратительный синтаксис. Нет ничего, чтобы позволяло расширить возможности языка, например, реализовать DSL в коде самого языка.

Ответить
Развернуть ветку
40 комментариев
Раскрывать всегда