Спецпроект

Ruby-разработчик о трендовом языке программирования

12 527
10 июня 2021 в 9:00
Автор: Станислав Иванейко. Фото: Влад Борисевич
Спецпроект

Ruby-разработчик о трендовом языке программирования

Автор: Станислав Иванейко. Фото: Влад Борисевич

Стас уже около семи лет работает программистом и специализируется на Ruby — специфическом языке, который сейчас весьма популярен. Почему «Ruby выбирает тебя», сколько предложений о собеседованиях получает в день Ruby-программист и сохранится ли такой ажиотаж в дальнейшем, Onliner узнал у Стаса в рамках спецпроекта с SoftSwiss.


«Шел на инженера, изобретателя»

— Как пришел в «айтишку»?

— В Минском государственном областном лицее у меня было направление физмат, и наблюдалась такая преемственность: очень многие шли на ФПМИ в БГУ. Собственно, я сделал то же. Но сейчас, насколько знаю, люди часто выбирают и БГУИР, так что появилось больше разнообразия.

О программировании я сначала не думал: всю жизнь мне больше нравилась математика, физика. И я шел на инженера, изобретателя — хотелось чего-то такого плана. Ну и математика везде нужна. Но в процессе обучения появилось осознанное программирование, сложные проекты, а не простые задачи, как было в школе. Я загорелся, нашел работу — и до сих пор программист.

Сначала поработал в нескольких небольших компаниях, а потом устроился в SoftSwiss, я здесь два с половиной года.

— Тебя не смущала тема гэмблинга?

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

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

Больше привлекают игроки, которые будут приходить в течение нескольких лет и получать удовольствие от игры.

К тому же казино работают по правилам регуляторов, у них есть лицензирование. И встречаются интересные требования. Например, каждые полчаса напоминать игроку: «Смотри, ты уже проиграл €100. Точно хочешь продолжать?» Я знаю, что многие казино, даже будучи на лицензии без этого требования, используют такой функционал.

То же на уровне техподдержки: возникают ситуации, когда игроку надо предложить остановиться, взять паузу — игра без перерыва более нескольких часов, несколько депозитов подряд после проигрыша.

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

«Девиз Ruby — „Делать программистов счастливыми“»

— Ruby еще с университета начал учить?

— Нет, в мое время на факультете два года давали C++ и Java. После этого шла более узкая тема по специальности: можно использовать любой язык, главное, чтобы проект был сдан и задачи решены.

— Разве все языки настолько универсальны, что один проект можно сделать на любом из них?

— С точки зрения математики — да. Все зависит только от скорости написания кода, скорости работы программы, выхода готового продукта. А когда говорим об Enterprise-разработке, то, конечно, такого уже не будет.

В Ruby я попал случайно. Даже спрашивал коллег, и многие отвечали: «Ruby выбрал меня, а не я его». И в моем случае получилось так же. Лет семь назад, когда я искал первую работу, было трудно попасть в компанию. Большие компании проводят курсы, и перед этим нужно сдать тесты. Видимо, вмешалась «Шапка-распределитель»: при том, что я был полный ноль в Ruby, меня записали именно на него.

— В двух словах: чем Ruby уникален и где обычно используется?

— Девиз Ruby — «Делать программистов счастливыми». Это язык, который формировался в эпоху сложных языков, когда программисту нужно было много думать, следить за памятью, процессами. Из-за этого был высокий порог входа в профессию. Уже появились Java, C# — они были чуть легче, но все равно требовалось много времени на изучение и написание кода. То есть языки решали некоторые проблемы, но далеко не все.

И Ruby создавали в Японии с мыслью о вещах, которые облегчат работу программиста. Здесь о многом можно не думать: о выделении и чистке памяти, о конкурентном доступе — когда к одному ресурсу пытаются стучаться одновременно несколько программ. Благодаря этому Ruby имеет очень читабельную форму. Если обычному человеку дать почитать код на Ruby, то с минимальными знаниями о том, как устроена программа, он поймет этот код.

Получается, ты не думаешь о каких-то вещах, потому что за тебя это делает Ruby — код выглядит понятным, и писать его легко. Значит, разработка идет быстро, как и добавление нового функционала.

Сейчас основное приложение Ruby используется в веб-разработке. Есть отдельный фреймворк — Ruby on Rails, он предназначен как раз для веба. Существуют зачатки других фреймворков, которые решают проблемы Ruby on Rails, но они пока не очень популярны. К примеру, намного больше людей знают «рельсы», чем Hanami, Roda.

— Какие проблемы есть у Ruby on Rails?

— Он создавался как фреймворк для прототипирования сайтов. Есть идея — берешь и быстро пробуешь ее на Ruby on Rails. Если продукт удачный, то можно переводить его на другой язык. Потому что с ростом продукта некоторые части нужно делать уже более быстрыми, а для этого лучше подойдут другие языки. Медленные же части можно оставить на Ruby как есть.

По-моему, сейчас Ruby — язык прототипирования номер один. Даже Python, с точки зрения идеи похожий на Ruby, сейчас все же уступает ему в плане веб-разработки. Он ушел в те сферы, на которые Ruby и не претендовал — Data Science, к примеру.

Но не все крупные бизнесы меняют язык. Так, создатель Basecamp до сих пор не уходит с Ruby, составляющего только 15% расходов бизнеса. Сейчас переписать свои продукты на другом языке выйдет дороже, и это все равно не такая большая статья расходов. Другими крупными проектами являются, например, GitHub, Shopify, Airbnb, Kickstarter.

Плюсы и минусы Ruby

— У Ruby существуют конкуренты в своей нише?

— Он их уже вытеснил. Допустим, у Python есть свой фреймворк для веб-разработки — Django. И сейчас очень мало людей пишут на нем — просто потому, что для бизнеса намного проще найти «рубиста».

Если говорить о веб-разработке в принципе, то еще есть Java, C# — синтаксис у них сложнее, но они могут держать большую нагрузку. И относительно недавно появился Go, язык от Google. Его парадигма — фреймворк не нужен, достаточно одного Go для разработки приложений. Он быстро набирает обороты, так как в комьюнити программистов начинают доминировать идеи микросервисной архитектуры. Раньше проводилась идея монолитной архитектуры, заключающаяся в том, что одно приложение отвечает за весь функционал сервиса. С микросервисной архитектурой можно сделать по-другому: за отдельные части отвечают компоненты-сервисы, которые взаимодействуют между собой. Для этого очень хорошо подходит Go. И, что важно, Go очень быстрый.

Но Ruby все равно язык номер один для того, чтобы быстро создать прототип.

— Ruby — простой язык для работы. А есть связанные с этим минусы?

— Если берем приложение на Rails, то при запуске нужно больше оперативной памяти, чем на Go, например. Допустим, мы хотим написать базу данных с условием, что с точки зрения потребления ресурсов нужен минимум и работать все должно максимально быстро. Здесь логичнее использовать С или C++, где программисты прописывают каждую мелочь, и язык позволяет это сделать. Правда, разработка займет больше времени, но продукт будет компактнее и быстрее в работе. Поэтому базы данных, балансировщики нагрузок, очереди сообщений и прочие важные компоненты делают на низкоуровневых языках вроде C++. Сейчас еще очень популярен Go, и на нем тоже уже создают многие компоненты, необходимые как для разработки, так и для самой работы приложений.

— Ruby-специалисты сейчас востребованы?

— Соотношение вакансий и Ruby-разработчиков таково, что их нехватка на рынке труда высокая. Но если говорить про Java, то там очень много программистов, но, соответственно, и очень много вакансий.

Я заметил, что раньше HR-менеджеры мне писали два-три раза в неделю с предложениями пройти собеседование. А сейчас — не меньше одного сообщения в день. Видимо, появились крупные заказы на разработку под Ruby и понадобились специалисты.

Перспективен ли Ruby? Как минимум с точки зрения вакансий Ruby точно жив. В плане проверки идей, то есть как язык для прототипирования, он до сих пор тоже лидирует. Что будет с технологиями через 2—3 года, сказать крайне сложно. Ведь постоянно выпускаются новые версии, библиотеки, выступления на конференциях, а какой резонанс даст каждое событие, предугадать трудно, так как, судя по опыту, он может быть абсолютно разный. Здесь каждый выбирает на свой вкус, к чему лежит его душа. Так что, думаю, Ruby в ближайшие пару лет точно будет очень популярным.

— Как различается работа Ruby-разработчика в продуктовой и аутсорсинговой компании? Есть ли вообще разница для разработчика? Что, на твой взгляд, лучше и почему?

— Я не работал в аутсорс-компании долгое время. Могу ориентироваться лишь на опыт своих коллег и друзей. По факту плюсы аутсорса — разнообразие проектов, построенные процессы (если эта компания большая), относительно легко дается возможность попробовать что-то новое.

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

В продуктовых компаниях проекты долгие (время жизни проекта ограничено временем принесения дохода), заказчики не меняются и легко строить коммуникацию, удается достаточно глубоко погрузиться в доменную область, а продвигать решения, пути оптимизации довольно легко. Плюс команды формируются не для того, чтобы потом «перепродать» клиентам, а для своего же продукта, и в их развитии бизнес-направление очень заинтересовано. У крупных продуктовых компаний, таких как SoftSwiss, собираются и создаются новые продукты — можно выбирать и переходить от одного проекта или технологии к другим. А в числе минусов я назвал бы ограниченность продуктов: иногда есть те, которые нужно просто поддерживать. Хотя об этом можно узнать на собеседовании.

Из личного опыта: на собеседованиях зачастую ребята посильнее приходят из продуктовых компаний, потому что долгая работа помогает более активно участвовать в проекте и развиваться самому, решая проблемы. Это заодно помогает понять, как работает бизнес.

«Нельзя просто закончить курсы и пойти работать»

— Можешь посоветовать начинающим программистам браться за Ruby?

— Я сначала посоветую выбирать не язык, а сферу. Когда я и мое окружение учились, мы попробовали всего по чуть-чуть: мобильные приложения, веб, инфраструктурные вещи вроде баз данных. Это помогло понять, чего тебе хочется.

Можно ли через несколько лет переключиться с одного языка на другой? В теории — да, ведь языки похожи. Только фреймворк может отличаться: допустим, где-то работаешь в браузере, а где-то — с самими устройствами, серверами. Но для этого нужно понять, чего хочешь. И уже после выбора направления определяешься с языком. Есть универсальные языки, как JavaScript — он развивается в разные стороны. Можно и мобильные приложения делать, и веб-приложения. JavaScript — очень универсальный инструмент. Но при работе с ним есть минусы во всех сферах, кроме веб, потому что JS изначально создавался под него.

Наверное, если у вас цель — только мобильные приложения, то лучше выбрать Kotlin, Java или Swift. Когда веб — стоит начинать с Ruby.

Язык очень простой и понятный, легко освоить и, судя по всему, найти работу. Как альтернативы — C#, Go, Java. Кроме того, в Европе очень популярен Elixir, но у нас он встречается достаточно редко. Это тоже язык не только для веб-разработки — на нем легко масштабировать программы.

— Ruby можно изучить самому или лучше пойти на курсы?

— Если срочно нужно найти работу, то можно пойти на курсы. Но в любом случае придется все время учиться: на самой работе, после нее. Людям, которые закончили университет по специальности, будет проще: у них уже есть база.

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


SoftSwiss — это международный технологический бренд, предоставляющий широко известные сертифицированные программные решения для управления операциями в сфере iGaming. Компания имеет обширный продуктовый портфель, который включает в себя платформу онлайн-казино, агрегатор с тысячами игр для казино, партнерскую платформу и недавно запущенную платформу для беттинга. SoftSwiss владеет рядом игровых лицензий, предоставляет комплексные решения White Label, заботясь обо всех технических, юридических и финансовых процессах. В 2013 году SoftSwiss первой в мире представила решение для онлайн-казино, оптимизированное для биткойнов. Таким образом, компания считается ведущим техническим экспертом в области использования криптовалют в онлайн-играх.

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

Наш канал в Telegram. Присоединяйтесь!

Есть о чем рассказать? Пишите в наш телеграм-бот. Это анонимно и быстро

Перепечатка текста и фотографий Onliner без разрешения редакции запрещена. nak@onliner.by