Язык программирования Golang (Go) относят к языкам общего назначения: на нем пишут системные утилиты, программы для десктопа, мобильные приложения и веб-сервисы. Go используется во многих популярных сервисах — например, в голосовых помощниках, в приложениях для заказа такси, браузерах и рекламных инструментах.
При этом на мировом рынке труда разработчиков Go меньше, чем тех, кто знает, например, Python. А потому специалисты по Go дороже примерно на 30%. Почему этот язык программирования популярен и какому бизнесу он подходит, рассказал лид курса по языку Go в «Яндекс Лицее» Виталий Левченко.Когда важно быстродействие
Если сравнивать с Python, то Go обходит его в производительности в несколько, а порой и в десять раз. Есть целый ряд случаев, когда это имеет решающее значение для бизнеса.
Как пример — интернет-реклама и скорость открытия баннера. Одно дело, когда баннер отображается через 500 миллисекунд, а вместе с тем подвисает весь сайт, что раздражает пользователя. Другое — когда всё загружается за 50 миллисекунд и проходит гладко.
Еще один сервис, где скорость работы критична, — маркетплейс. Пользователи открывают десятки страниц, выставляют фильтры и надеются, что всё быстро загрузится. Медленная работа сервиса имеет высокую цену: покупатель уходит на другую площадку, потому что не дождался загрузки страниц. И здесь снова приходит на помощь Go.
Когда данных очень много
Go отлично справляется с нестандартными кейсами, когда нужно написать свою базу или параллельно обрабатывать большое количество данных, — например, в такси.
Пользователь делает заказ и надеется, что машина будет быстро найдена. В это время сервис получает точку отправления и должен вычислить, какой из десяти автомобилей к ней ближе всего, определить рейтинг водителя и дистанцию будущего маршрута, предложить взять заказ тому или иному водителю и так далее.
В памяти сервиса оказывается огромное количество информации по каждому такси, и все это нужно смоделировать, чтобы выдать пользователю самый релевантный вариант.
Здесь не получится написать код, который будет работать с обычной базой данных, — задача слишком большая и в ней множество нюансов. Приходится писать свою базу данных под конкретную задачу — подбор машины. Для этого используют языки, которые эффективно работают с компьютерной памятью. Сюда входят Go, С# и C++.
Вернемся к примеру с маркетплейсами. На них параллельно идут десятки и сотни тысяч скидочных программ разного формата. И нужно сделать так, чтобы скидки считались корректно, зависимости между ними учитывались и в итоге пользователь видел цену с учетом всех акций.
Здесь не получится взять стандартную базу данных и внести в нее пару скидочных программ — задача гораздо сложнее.
Читать по теме: Стало проще и доступнее: тренды в разработке программного обеспечения
Когда проект состоит из микросервисов
Если у вас большой сервис, состоящий из нескольких маленьких, то Go подойдет для написания отдельных его частей. Данный язык — надежный вариант, когда создали сервис, оставили на серверах на пару лет и за это время он стабильно работает, ничего с ним неожиданного не приключилось.
Таким образом, можно написать на нем лишь часть продукта, а потом к нему не возвращаться какое-то время.
Пример этого — голосовые помощники, которые состоят из разных навыков. Та же Алиса работает как калькулятор, отдельная ее часть может рассказывать о погоде или читать детскую сказку. Каждый из этих навыков можно отдельно писать на Go.
Более того, Go помогает экономить на поддержании работы микросервисов. Когда продукт — цельный монолит, проблем нет. Когда же он состоит из небольших частей, то за каждой из них разработчикам приходится постоянно следить и «подкручивать» любой микросервис, если он дает сбой. Это приводит к тратам бизнеса.
Go же по стоимости его поддержки намного дешевле за счет надежности. То же такси сильно завязано на надёжности, поэтому Go для него — прекрасный вариант.
Читать по теме: Какие языки программирования учить для работы с AI?
Когда проект быстро растет
У языка Go не такой высокий порог входа. Разработчик, владеющий, скажем, PHP, быстро разберется в Go и сможет влиться в работу над проектом. В этом смысле Go уникален: нет необходимости два года погружаться в устройство языка, если до этого был опыт бэкенд-разработки — достаточно общих навыков программирования.
Вся спецификация языка заключена буквально в одной веб-странице, он прост для освоения — начать изучать Go можно уже в школе. При этом на нем можно сразу писать промышленный код, создавать проекты и собирать портфолио для работы.
Благодаря простоте и гибкости Go популярен в стартапах и пилотных запусках. Если проект перейдет в стадию быстрого масштабирования, нанять специалистов будет достаточно просто.
Кроме того, благодаря активному сообществу, в котором специалисты по Go делятся своими рабочими решениями, производительность таких программистов значительно выше. Во многих случаях разработчик может использовать под свою задачу готовое решение вместо того, чтобы реализовывать его с нуля.
Большое количество готовых решений ведет к стандартизации. А значит, разработчику будет проще переходить работать из одного проекта в другой, а бизнесу — проще нанимать новых специалистов. Вместе с тем через активное сообщество проще находить кадры.
Случаи, когда Go не подойдет
Главное, что следует помнить, — Go нужен для сложной и продуманной архитектуры. Если же речь об MVP, прототипе, который нужен, чтобы протестировать гипотезы, смысла выбирать Go нет: выйдет дольше и дороже.
Второй момент, где Go не силен, — работа с машинным обучением. Для этой задачи попросту нет хороших библиотек на Go. Лучше использовать языки, в которых есть интеграции с системами машинного обучения, — например, Python или Scala.
В любом случае при выборе языка программирования для изучения или работы важно понимать его сильные стороны и ограничения. А в случае бизнеса следует прописать, какие задачи предстоит решать, и разобраться, подходит ли для них Go. Тогда вы сможете найти самого подходящего техлида, на которого сможете положиться и который поможет с дальнейшим вектором развития.
Читать по теме: No-code в HR: как это работает и какому бизнесу подойдет
Фото на обложке: go.dev
Нашли опечатку? Выделите текст и нажмите Ctrl + Enter
Материалы по теме
-
Пройти курс «Кейсы предпринимателей: как справиться с вызовами»
- 1 VK получила 25% в разработчике офисного ПО «Р7»
- 2 Современные технологии для ресторанов и кафе: инновации, которые меняют сервис
- 3 Суд в Йошкар-Оле освободил из-под стражи основателя iSpring
- 4 Следствие попросило отправить основателя iSpring под домашний арест