Блог компании Нетология
Программирование
Карьера в IT-индустрии
16 октября

Почему разработчики выбирают Golang

Golang (Go) — молодой, но набирающий популярность язык программирования. Его разработали в Google для решения локальных задач, но теперь используют в Uber, Medium, DailyMotion, Twitch и других компаниях. Узнали у разработчиков, почему они выбрали Golang, какие преимущества есть и стоит ли учить его как первый язык. 

«Go — не язык «для всего на свете», Google создал его для решения конкретных задач»


Ильназ Гильязов, сооснователь компании AIMS и автор программы курса «Golang-разработчик с нуля» Нетологии

Почему перешел на Go. Когда мы разворачивали большое количество микросервисов на Java/Kotlin, потребление памяти сильно сказалось на стоимости «железа». Оптимизация затрат заставила искать менее ресурсоемкие альтернативы. Попробовали Go — уменьшили потребление памяти в несколько раз. При этом, от Java/Kotlin не отказываемся, благо можно аккуратно интегрировать все это вместе в рамках микросервисной архитектуры. 

Почему компании переходят на Go с других языков. Go проще множества языков и позволяет даже большим командам создавать поддерживаемый код, не теряя при этом в качестве кодовой базы, — поэтому компании обращают на него внимание. Обычно всё начинается с эксперимента из серии «а не попробовать ли нам этот кусок переписать на Go — говорят, что станет быстрее/производительнее/меньше потреблять железа». Если эксперимент прошел успешно, продолжают внедрять Go, переписывая и другие куски, либо начиная разработку новых сервисов сразу на нем. Обещанная возможность достаточно легко создавать backend, оптимизированный под высокие нагрузки, стимулирует попробовать язык при разработке с нуля. Но нужно понимать, что Go — не язык «для всего на свете», Google создал его для решения конкретных задач.

Какой порог входа в Go и что нужно уметь. Порог входа невысокий, потому что Go создавался для быстрого изучения и применения. В нем нет сложного синтаксиса и множества способов сделать одно и то же.
Если говорить про backend-разработку, то здесь набор знаний более-менее типовой:
сам язык и его инфраструктура: синтаксис, стандартная библиотека, подключение внешних зависимостей;

  • Git;
  • понимание работы frontend (web и mobile) и backend;
  • cетевой стек;
  • SQL или одна из NoSQL баз данных — в зависимости от того, что используют в компании;
  • Linux;
  • авто-тесты, CI/CD;
  • микросервисы;
  • Docker, Kubernetes.

Чем больше знает специалист, тем лучше. Поэтому не лишними будут системы кэширования (например, Redis), Messaging (RabbitMQ, Kafka), логирование и так далее.
Часто компании в своих вакансиях требуют знание Python/PHP/другого языка, а также «опыт либо желание изучить/перейти/писать на Go».

Насколько востребованы и сколько зарабатывают Golang-разработчики. По данным HeadHunter, в России более 1800 вакансий разработчиков на Golang. Средняя зарплата junior-специалиста 80 тысяч рублей. 
Среди работодателей можно увидеть Яндекс, Mail.ru, Рамблер, Авито, Ozon, МТС, Мегафон. Но разработчиков, которые могли бы закрывать эти вакансии, не хватает. 

«Популярность Go растет только по одной причине — нет альтернатив»


Ринат Хабибиев, руководитель проектов в TalentTech

Почему перешел на Go. Работать на Go начал из-за потребности в более производительном решении по сравнению с популярными скриптовыми языками. 
О популярности Go. Go активно используется только по одной причине — нет других альтернатив. Все, что существует на текущий момент, либо менее производительное (PHP, Ruby, Python), либо слишком сложное (C/C++, Rust), либо имеет проблемы с платформой и совместимостью с Linux (Java/Kotlin, Apple Swift).

О сложностях в погружении. Проблем с погружением в Go, как правило, ни у кого не возникает. А так как Go это в основном про веб-разработку, то веб-разработчики входят в него очень быстро. Как вспомогательный инструмент Go очень даже неплох.
Но мне в Go очень не хватает вещей, которыми я активно пользуюсь в других языках программирования и отсутствие которых мешает моей продуктивной работе: отсутствие полноценной поддержки парадигмы ООП и дженериков (generics).

Можно ли стать Golang-разработчиком без опыта. Устроиться разработчиком Go без опыта работы на Go можно. При хорошем знании другого языка освоить Go совсем даже несложно — опытный работодатель это знает. К тому же, часто смотрят не на опыт работы с конкретным инструментом, а на совокупный опыт работы в отрасли.

«Go быстро развивается, многие детские болячки уже решены»


Александр Типугин, старший разработчик компании PIRL Ventures

Почему начал работать на Go. Повод попробовать Go был как раз на стыке личного интереса к языку и потребностей компании. Тогда возник новый проект, связанный с внутренней инфраструктурой, и основными требованиями к нему были высокая производительность, многопоточность и удобство написания сетевого кода. Ruby и PHP, которые на тот момент были основными инструментами в компании, в эти требования не очень вписывались. Поскольку на тот момент я как раз начал посматривать в сторону Go, было решено попробовать его.

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

О сложностях в погружении. Go достаточно простой язык. Минимум языковых конструкций, всего 25 ключевых слов. Не нужно управлять памятью (есть GC) и потоками (есть планировщик). Чтобы сесть и понять с нуля, что происходит в коде, надо не так уж много времени. Другое дело, что многие вещи по началу кажутся довольно странными, некоторые концепции (каналы, горутины) могут быть не сразу понятны и очевидны.

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

«Go — простой, но очень мощный язык с отличной документацией и хорошо продуманными встроенными инструментами»


Данил Наумов, Backend разработчик QIWI Blockchain Technologies

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

О популярности Go. Go — простой, но очень мощный язык с отличной документацией и хорошо продуманными встроенными инструментами.
Язык создан компанией Google в качестве альтернативы C++ и Java для разработчиков приложений в контексте задач компании. Так как Google нуждается в большом количестве разработчиков, язык должен быть достаточно простым, с низким порогом вхождения, но при этом быстрым, с максимально удобной инфраструктурой. Это во многом определило бурный рост и внедрение этого языка за пределами Google.

О сложностях в погружении. Нет, так как у Go очень подробная документация, а также много хороших книг, статей, огромное количество мануалов и большое комьюнити.
Стоит ли учить Go как первый язык. На мой взгляд, да. Это достаточно низкоуровневый, но при этом простой в освоении язык, который позволит понять принципы работы памяти, многопоточности, синхронизации процессов.
Можно ли стать Golang-разработчиком без опыта. Без опыта найти работу довольно сложно. Но при этом, учитывая все возрастающую потребность в разработчиках на Go, мне кажется, что знание этого языка будет большим преимуществом.

От редакции


Go — простой и удобный язык, не перегруженный сложными конструкциями, который подходит для быстрого изучения. С его помощью создаются приложения в самых востребованных сферах. Спрос на Golang-разработчиков растет, а специалистов не хватает.
На курсе «Golang-разработчик с нуля» учим разрабатывать микросервисы и полноценные приложения — студенты создают с нуля приложение для организации корпоративной соцсети и осваивают востребованную профессию.

-26
6,8k 27
Комментарии 83