Привет, Хабр! Представляю вашему вниманию перевод статьи «Why is Ruby still our choice in 2020?» автора Vira Vashkovska.
Мы — опытная команда Ruby on Rails разработчиков. Некоторые из нас занимаются разработкой на Ruby уже многие годы и знают его как свои пять пальцев. Вот почему нам требуется много мужества чтобы признать, что Ruby сейчас не в лучшей форме.
Язык был очень популярен в 2013-2015 годах, но затем его популярность пошла на спад. Это особенно заметно, если мы сравним статистику Ruby и Ruby on Rails за 2020 года с прогрессом, достигнутым другими инструментами. Stack Overflow провел довольно тривиальное сравнение динамики роста Ruby и Node.js на основе количества заданных вопросов. Да, это не самый объективный показатель, но вы поняли…
Количество пользователей Ruby упало, но достаточно ли этого, чтобы объявить о смерти Ruby? На самом деле, нет. Если вы видели такие статьи, как «Ruby is Dead» или «Ruby is Irrelevant», приготовьтесь — ведь в какой-то момент каждый язык был объявлен мертвым. Возьмите Node.js — среда выполнения переживает хорошие времена — и все же люди спешат объявить о ее смерти.
Поспешные мнения об упадке инструмента невероятно распространены в среде разработчиков программного обеспечения. Мы уже видели много инструментов, объявленных мертвыми, хотя это даже отдаленно не было правдой. Все опытные разработчики знают, что истории об умирающих языках и фреймворках действительно популярны.
Очевидно, нет дыма без огня. Ruby ни в коем случае не идеален: разработчикам было дано несколько причин подумать о переходе на другие инструменты. Давайте посмотрим на наиболее распространенные критические замечания, высказанные в адрес Ruby и Ruby on Rails, и посмотрим, есть ли у него достоинства.
1. «Хаотичное потребление ресурсов процессора». Известно, что загрузка процессора в Ruby и Ruby on Rails достигает высоких показателей на ровном месте. Разработчики запускают свои типичные процессы, открывают мониторы активности и обнаруживают, что загрузка ЦП составляет 50% или даже 100%. Как правило, эти изменения происходят без видимой причины — разработчики не понимают, что они сделали неправильно, и им приходится убивать процесс.
Наш комментарий: Ruby не в лучших отношениях с загрузкой процессора. Обычно для уменьшения потребления достаточно отредактировать файлы конфигурации и отключить ненужные процессы фонового сканирования. Проблема часто заключается в качестве кода; наша единственная жалоба — это трудности с поиском этих проблем.
2. «Динамическая типизация не является признаком хорошего кода». Динамическая типизация в Ruby не проверена должным образом. Разработчики могут делать ошибки, создавать нечитаемый код и не знать об этом. Некоторые думают, что репозитории Ruby-кода — магнит для технического долга.
Наш комментарий: в Ruby переменные являются динамическими: одна переменная может ссылаться на разные значения, и вы можете изменить его в любое время. Это то, что делает Ruby одним из самых быстрых языков для написания кода, поэтому это не является недостатком. В Ruby также есть отличный сборщик мусора, который автоматически обнаруживает технические проблемы и не требует ручных настроек. Хорошо масштабированные успешные проекты, использующие Ruby, являются доказательством того, что Ruby может быть очень упорядоченным.
3. «Нет кривой роста». Не то чтобы Ruby стал ужасным, просто другие языки стали намного мощнее. JavaScript делает невероятные скачки качества каждый год, в то время как Ruby растет неуклонно, но медленно. Раньше Rails являлся несомненным конкурентным преимуществом, но теперь в каждом языке есть Rails-подобные фреймворки.
Наш комментарий: это правда, что Ruby on Rails вдохновил Node.js, JS, Python и множество других фреймворковов. Что касается обновлений, те, кто работал на Ruby постоянно, заметили значительные улучшения в скорости и качестве кода. Ruby on Rails в 2020 году работает так же быстро, как и фреймворки JS — у нас есть статья, в которой мы объясняем это подробнее.
Ruby не является мейнстримным языком, но он один из самых эффективных. Люди не учатся этому ради удовольствия — они делают это для работы. Прямо сейчас он используется Airbnb, Hulu, GitHub и многими другими крупными платформами. Вот некоторые дополнительные статистические данные о сайтах на основе Ruby и их трафике.
Экосистема Ruby on Rails 2020 включает одно из самых популярных сообществ на GitHub — более 3 500 участников. Чтобы дать вам представление, у Django, одного из самых популярных фреймворков Python, всего 1500. Итак, сравнение Ruby on Rails и Django в 2020 году показывает, что RoR на самом деле преуспевает.
В Syndicode мы используем Ruby по многим причинам. Во-первых, быстрота- написание проектов на Ruby, занимает на 30-40% меньше времени, чем на других языках. Все потому, что вам нужно в 3-4 раза меньше строк кода, чем в Java или Python. Код легок и способствует повышению производительности.
Ранее Ruby имел репутацию медленного, но это можно решить с помощью правильных практик написания кода. Мы полностью согласны с руководством, опубликованным Shopify — писать быстрый код на Ruby легко, если вы знаете, как это сделать.
Скорость написания кода, меньшее количество строк и отличные фреймворки — все это похоже на преимущества разработки. Как насчет качества продукции и преимуществ производительности? По нашему опыту, у Ruby есть что предложить бизнесу.
Быстрое время выхода на рынок. Ruby on Rails — наш выбор для разработки MVP, потому что это единственный инструмент, который позволяет достичь высокой скорости написания кода без ущерба для качества.
Гибкость. Поскольку код на Ruby так быстро и легко редактировать, создание и публикация обновлений — это простая задача. Разработчики могут быстро выпустить новые функции, представить инновации на рынке и адаптироваться к потребностям пользователей.
Популярность Ruby on rails в 2020 году: экосистема платформы Ruby on Rails легко превосходит большинство сред разработки бэкэнда, включая инструменты Node и Python;
Много бесплатных инструментов и библиотек. Существует обширная экосистема гемов и репозиториев Ruby и Ruby on Rails: многократно используемые фрагменты кода, которые можно интегрировать в любой проект.
Экономическая эффективность: с Ruby вам нужно платить в 2-3 раза меньше за разработку. Это потому, что синтаксис языка позволяет писать быстро. И по-прежнему, многие функции могут быть реализованы с помощью созданного сообществом готового к использованию кода.
Кроссплатформенность: код, написанный на Ruby, хорошо работает на разных устройствах и ОС, а также в разных браузерах. Все наши веб-сайты, SaaS и торговые площадки, разработанные на Ruby, работают безупречно в кроссплатформенной среде.
Безопасность: Ruby и Ruby on Rails идеально подходят для приложений, чувствительных к данным (финансовые платформы, торговые площадки, решения для здравоохранения и т. Д.). Ruby ??и RoR следуют жизненному циклу безопасной разработки: разработчики отдают приоритет инструментам обеспечения безопасности, инструментам мониторинга в реальном времени и соблюдают высокие стандарты безопасности.
Вряд ли есть какие-либо аспекты веб-разработки, которые Ruby не охватывает. Тем не менее, основываясь на нашем опыте, мы определили 5 основных типов проектов, в которых использование Ruby вместо других языков общего назначения «делает разницу».
Ruby используют: Airbnb, Hulu, Amazon
Торговые площадки — это огромные веб-платформы, которые связывают покупателей и продавцов, позволяют проводить финансовые операции, совершать сделки и покупки. Они работают с большими массивами данных, требуют высоких стандартов безопасности и требуют много времени для разработки.
Мы используем Ruby on Rails для всех наших проектов на рынке, включая очень успешные Clean Agents и HotelCloud. Это позволяет нам сократить время разработки, повысить качество и оперативно выпускать обновления.
SaaS, которые используют Ruby: Basecamp, Dribble
Программное обеспечение как услуга — это платформа, которая постоянно предоставляет услуги по обычной подписке. Два критерия для создания успешного SaaS — это скорость и безопасность. В конце концов, поставщики SaaS несут долгосрочную ответственность за успех своих клиентов. Необходимы надежность, хорошая производительность, безопасность и быстрые обновления. Вот почему Ruby on Rails является лучшим выбором для разработки SaaS.
Масштабируемость: SaaS быстро растут — темпы роста компаний составляют 50-60% в год. Кодовая база должна адаптироваться к новым потребностям и выдерживать высокие нагрузки. Ruby и RoR позволяют быстро изменить функциональность и адаптировать сервисы к новым требованиям.
Экономическая эффективность: Ruby on Rails обладает одной из наиболее значительных экосистем для веб-разработки. Многочисленное сообщество GitHub, высококачественные гемы и готовые к использованию библиотеки — эти факторы способствуют созданию надежной инфраструктуры.
Мы выбрали Ruby on Rails для InstaLinks — SaaS, генерирующий умные ссылки, доступные с настольных и мобильных устройств. RoR также соответствует требованиям более значимых проектов, таких как CRM — взгляните на наш случай с UkrVit.
Компании, которые использовали Ruby для MVP: Twitter, Shopify, GitHub, Basecamp
Ruby и Ruby on Rails — очевидный выбор для разработки MVP. Минимально жизнеспособные продукты необходимо разрабатывать быстро — владельцы продуктов хотят распространять их среди пользователей, демонстрировать внимательное обслуживание инвесторам и расширять сферу своей деятельности.
Простота сборки: даже небольшая команда Ruby on Rails и Ruby может создать большой MVP;
Простота обучения: собственные разработчики могут быстро присоединиться к нашему проекту позже, потому что изучение Ruby on Rails занимает мало времени из-за его простого синтаксиса.
Вот пример MVP, созданного нашими веб-разработчиками с помощью Ruby on Rails. HelloCare — это торговая площадка на рынке здравоохранения, здесь безопасность и надежность были нашим приоритетом. Ruby on Rails позволяет нам двигаться к достижению этих амбициозных целей, сохраняя при этом низкие сроки выхода на рынок и производственные затраты.
Кроссплатформенные приложения, созданные с помощью Ruby: Basecamp, GitHub
Мобильное приложение должно иметь возможность эффективно использовать API-интерфейсы устройства, отправлять push-уведомления, адаптироваться к характеристикам оборудования и операционной системы. Хороший бэкэнд-инструмент для мобильного приложения должен отправлять оповещения, объявления, синхронизацию данных. Мы используем Ruby и Ruby on Rails для настройки серверной части для базы данных, веб-сервера и сервера приложений.
Хотя мы в основном используем Ruby для веб-проектов, мы часто обращаемся к этому языку для кроссплатформенных инструментов. Именно это мы и сделали в Kindercare — приложении, которое автоматизирует управление и организацию дневного и дошкольного ухода. Мы использовали Ruby и Ruby on Rails для разработки мобильных и веб-версий платформы — приложение получило превосходные отклики и высокие мировые рейтинги.
Ruby on Rails часто рассматривается как доступный инструмент для простых проектов, но на самом деле это гораздо большее. Нам нравится использовать Ruby и Ruby on Rails для амбициозных продуктов, которые используют AI, IoT, машинное обучение и т.д.
Язык достаточно мощный, чтобы приспособиться к сложным инновациям, а его простой синтаксис экономит массу усилий в процессе разработки.
Ruby Gems предлагает много готового кода для реализации инноваций AI и IoT.
Ruby ни в коем случае не умирает. И статистика, и опыт разработчиков Syndicode указывают на одно и то же: Ruby — это практичный язык, идеально подходящий для решения конкретных бизнес-задач. Он может не предлагать какой-либо конкретный подход «из коробки», что делает его менее интересным для сообществ, таких как Stack Overflow, но он работает.
Будущее Ruby on Rails еще более оптимистично — скорее, он процветает. Это по-прежнему одна из самых популярных платформ веб-разработки, и даже RoR-подобные фреймвоорки, еще не могут догнать оригинал. Ruby и Rails являются быстрыми и эффективными инструментами для создания веб- и мобильных решений — и это преимущество никуда не денется.
Если вы планируете создание торговой площадки, SaaS или любой веб-платформы с мобильной версией, Ruby, вероятно, является правильным выбором для вашего проекта. Вы узнаете наверняка, когда поговорите об этом с разработчиками, так что не стесняйтесь обращаться к нам.
Мы — опытная команда Ruby on Rails разработчиков. Некоторые из нас занимаются разработкой на Ruby уже многие годы и знают его как свои пять пальцев. Вот почему нам требуется много мужества чтобы признать, что Ruby сейчас не в лучшей форме.
Язык был очень популярен в 2013-2015 годах, но затем его популярность пошла на спад. Это особенно заметно, если мы сравним статистику Ruby и Ruby on Rails за 2020 года с прогрессом, достигнутым другими инструментами. Stack Overflow провел довольно тривиальное сравнение динамики роста Ruby и Node.js на основе количества заданных вопросов. Да, это не самый объективный показатель, но вы поняли…
Количество пользователей Ruby упало, но достаточно ли этого, чтобы объявить о смерти Ruby? На самом деле, нет. Если вы видели такие статьи, как «Ruby is Dead» или «Ruby is Irrelevant», приготовьтесь — ведь в какой-то момент каждый язык был объявлен мертвым. Возьмите Node.js — среда выполнения переживает хорошие времена — и все же люди спешат объявить о ее смерти.
Поспешные мнения об упадке инструмента невероятно распространены в среде разработчиков программного обеспечения. Мы уже видели много инструментов, объявленных мертвыми, хотя это даже отдаленно не было правдой. Все опытные разработчики знают, что истории об умирающих языках и фреймворках действительно популярны.
К 2020 году Ruby и Ruby on Rails мертвы?
Очевидно, нет дыма без огня. Ruby ни в коем случае не идеален: разработчикам было дано несколько причин подумать о переходе на другие инструменты. Давайте посмотрим на наиболее распространенные критические замечания, высказанные в адрес Ruby и Ruby on Rails, и посмотрим, есть ли у него достоинства.
1. «Хаотичное потребление ресурсов процессора». Известно, что загрузка процессора в Ruby и Ruby on Rails достигает высоких показателей на ровном месте. Разработчики запускают свои типичные процессы, открывают мониторы активности и обнаруживают, что загрузка ЦП составляет 50% или даже 100%. Как правило, эти изменения происходят без видимой причины — разработчики не понимают, что они сделали неправильно, и им приходится убивать процесс.
Наш комментарий: Ruby не в лучших отношениях с загрузкой процессора. Обычно для уменьшения потребления достаточно отредактировать файлы конфигурации и отключить ненужные процессы фонового сканирования. Проблема часто заключается в качестве кода; наша единственная жалоба — это трудности с поиском этих проблем.
2. «Динамическая типизация не является признаком хорошего кода». Динамическая типизация в Ruby не проверена должным образом. Разработчики могут делать ошибки, создавать нечитаемый код и не знать об этом. Некоторые думают, что репозитории Ruby-кода — магнит для технического долга.
Наш комментарий: в Ruby переменные являются динамическими: одна переменная может ссылаться на разные значения, и вы можете изменить его в любое время. Это то, что делает Ruby одним из самых быстрых языков для написания кода, поэтому это не является недостатком. В Ruby также есть отличный сборщик мусора, который автоматически обнаруживает технические проблемы и не требует ручных настроек. Хорошо масштабированные успешные проекты, использующие Ruby, являются доказательством того, что Ruby может быть очень упорядоченным.
3. «Нет кривой роста». Не то чтобы Ruby стал ужасным, просто другие языки стали намного мощнее. JavaScript делает невероятные скачки качества каждый год, в то время как Ruby растет неуклонно, но медленно. Раньше Rails являлся несомненным конкурентным преимуществом, но теперь в каждом языке есть Rails-подобные фреймворки.
Наш комментарий: это правда, что Ruby on Rails вдохновил Node.js, JS, Python и множество других фреймворковов. Что касается обновлений, те, кто работал на Ruby постоянно, заметили значительные улучшения в скорости и качестве кода. Ruby on Rails в 2020 году работает так же быстро, как и фреймворки JS — у нас есть статья, в которой мы объясняем это подробнее.
Ruby и Ruby on Rails является обязательным для многих проектов
Ruby не является мейнстримным языком, но он один из самых эффективных. Люди не учатся этому ради удовольствия — они делают это для работы. Прямо сейчас он используется Airbnb, Hulu, GitHub и многими другими крупными платформами. Вот некоторые дополнительные статистические данные о сайтах на основе Ruby и их трафике.
Экосистема Ruby on Rails 2020 включает одно из самых популярных сообществ на GitHub — более 3 500 участников. Чтобы дать вам представление, у Django, одного из самых популярных фреймворков Python, всего 1500. Итак, сравнение Ruby on Rails и Django в 2020 году показывает, что RoR на самом деле преуспевает.
Разработка на Ruby — это быстро и эффективно
В Syndicode мы используем Ruby по многим причинам. Во-первых, быстрота- написание проектов на Ruby, занимает на 30-40% меньше времени, чем на других языках. Все потому, что вам нужно в 3-4 раза меньше строк кода, чем в Java или Python. Код легок и способствует повышению производительности.
Ранее Ruby имел репутацию медленного, но это можно решить с помощью правильных практик написания кода. Мы полностью согласны с руководством, опубликованным Shopify — писать быстрый код на Ruby легко, если вы знаете, как это сделать.
Преимущества разработки на Ruby для владельцев продуктов
Скорость написания кода, меньшее количество строк и отличные фреймворки — все это похоже на преимущества разработки. Как насчет качества продукции и преимуществ производительности? По нашему опыту, у Ruby есть что предложить бизнесу.
Быстрое время выхода на рынок. Ruby on Rails — наш выбор для разработки MVP, потому что это единственный инструмент, который позволяет достичь высокой скорости написания кода без ущерба для качества.
Гибкость. Поскольку код на Ruby так быстро и легко редактировать, создание и публикация обновлений — это простая задача. Разработчики могут быстро выпустить новые функции, представить инновации на рынке и адаптироваться к потребностям пользователей.
Популярность Ruby on rails в 2020 году: экосистема платформы Ruby on Rails легко превосходит большинство сред разработки бэкэнда, включая инструменты Node и Python;
Много бесплатных инструментов и библиотек. Существует обширная экосистема гемов и репозиториев Ruby и Ruby on Rails: многократно используемые фрагменты кода, которые можно интегрировать в любой проект.
Экономическая эффективность: с Ruby вам нужно платить в 2-3 раза меньше за разработку. Это потому, что синтаксис языка позволяет писать быстро. И по-прежнему, многие функции могут быть реализованы с помощью созданного сообществом готового к использованию кода.
Кроссплатформенность: код, написанный на Ruby, хорошо работает на разных устройствах и ОС, а также в разных браузерах. Все наши веб-сайты, SaaS и торговые площадки, разработанные на Ruby, работают безупречно в кроссплатформенной среде.
Безопасность: Ruby и Ruby on Rails идеально подходят для приложений, чувствительных к данным (финансовые платформы, торговые площадки, решения для здравоохранения и т. Д.). Ruby ??и RoR следуют жизненному циклу безопасной разработки: разработчики отдают приоритет инструментам обеспечения безопасности, инструментам мониторинга в реальном времени и соблюдают высокие стандарты безопасности.
Топ 5 сфер для Ruby-разработки
Вряд ли есть какие-либо аспекты веб-разработки, которые Ruby не охватывает. Тем не менее, основываясь на нашем опыте, мы определили 5 основных типов проектов, в которых использование Ruby вместо других языков общего назначения «делает разницу».
Торговые площадки
Ruby используют: Airbnb, Hulu, Amazon
Торговые площадки — это огромные веб-платформы, которые связывают покупателей и продавцов, позволяют проводить финансовые операции, совершать сделки и покупки. Они работают с большими массивами данных, требуют высоких стандартов безопасности и требуют много времени для разработки.
Мы используем Ruby on Rails для всех наших проектов на рынке, включая очень успешные Clean Agents и HotelCloud. Это позволяет нам сократить время разработки, повысить качество и оперативно выпускать обновления.
Программное обеспечение как услуга
SaaS, которые используют Ruby: Basecamp, Dribble
Программное обеспечение как услуга — это платформа, которая постоянно предоставляет услуги по обычной подписке. Два критерия для создания успешного SaaS — это скорость и безопасность. В конце концов, поставщики SaaS несут долгосрочную ответственность за успех своих клиентов. Необходимы надежность, хорошая производительность, безопасность и быстрые обновления. Вот почему Ruby on Rails является лучшим выбором для разработки SaaS.
Масштабируемость: SaaS быстро растут — темпы роста компаний составляют 50-60% в год. Кодовая база должна адаптироваться к новым потребностям и выдерживать высокие нагрузки. Ruby и RoR позволяют быстро изменить функциональность и адаптировать сервисы к новым требованиям.
Экономическая эффективность: Ruby on Rails обладает одной из наиболее значительных экосистем для веб-разработки. Многочисленное сообщество GitHub, высококачественные гемы и готовые к использованию библиотеки — эти факторы способствуют созданию надежной инфраструктуры.
Мы выбрали Ruby on Rails для InstaLinks — SaaS, генерирующий умные ссылки, доступные с настольных и мобильных устройств. RoR также соответствует требованиям более значимых проектов, таких как CRM — взгляните на наш случай с UkrVit.
MVP
Компании, которые использовали Ruby для MVP: Twitter, Shopify, GitHub, Basecamp
Ruby и Ruby on Rails — очевидный выбор для разработки MVP. Минимально жизнеспособные продукты необходимо разрабатывать быстро — владельцы продуктов хотят распространять их среди пользователей, демонстрировать внимательное обслуживание инвесторам и расширять сферу своей деятельности.
Простота сборки: даже небольшая команда Ruby on Rails и Ruby может создать большой MVP;
Простота обучения: собственные разработчики могут быстро присоединиться к нашему проекту позже, потому что изучение Ruby on Rails занимает мало времени из-за его простого синтаксиса.
Вот пример MVP, созданного нашими веб-разработчиками с помощью Ruby on Rails. HelloCare — это торговая площадка на рынке здравоохранения, здесь безопасность и надежность были нашим приоритетом. Ruby on Rails позволяет нам двигаться к достижению этих амбициозных целей, сохраняя при этом низкие сроки выхода на рынок и производственные затраты.
Кроссплатформенные приложения с Ruby on Rails
Кроссплатформенные приложения, созданные с помощью Ruby: Basecamp, GitHub
Мобильное приложение должно иметь возможность эффективно использовать API-интерфейсы устройства, отправлять push-уведомления, адаптироваться к характеристикам оборудования и операционной системы. Хороший бэкэнд-инструмент для мобильного приложения должен отправлять оповещения, объявления, синхронизацию данных. Мы используем Ruby и Ruby on Rails для настройки серверной части для базы данных, веб-сервера и сервера приложений.
Хотя мы в основном используем Ruby для веб-проектов, мы часто обращаемся к этому языку для кроссплатформенных инструментов. Именно это мы и сделали в Kindercare — приложении, которое автоматизирует управление и организацию дневного и дошкольного ухода. Мы использовали Ruby и Ruby on Rails для разработки мобильных и веб-версий платформы — приложение получило превосходные отклики и высокие мировые рейтинги.
Инновационные услуги с развитием IoT и AI
Ruby on Rails часто рассматривается как доступный инструмент для простых проектов, но на самом деле это гораздо большее. Нам нравится использовать Ruby и Ruby on Rails для амбициозных продуктов, которые используют AI, IoT, машинное обучение и т.д.
Язык достаточно мощный, чтобы приспособиться к сложным инновациям, а его простой синтаксис экономит массу усилий в процессе разработки.
Ruby Gems предлагает много готового кода для реализации инноваций AI и IoT.
Выводы
Ruby ни в коем случае не умирает. И статистика, и опыт разработчиков Syndicode указывают на одно и то же: Ruby — это практичный язык, идеально подходящий для решения конкретных бизнес-задач. Он может не предлагать какой-либо конкретный подход «из коробки», что делает его менее интересным для сообществ, таких как Stack Overflow, но он работает.
Будущее Ruby on Rails еще более оптимистично — скорее, он процветает. Это по-прежнему одна из самых популярных платформ веб-разработки, и даже RoR-подобные фреймвоорки, еще не могут догнать оригинал. Ruby и Rails являются быстрыми и эффективными инструментами для создания веб- и мобильных решений — и это преимущество никуда не денется.
Если вы планируете создание торговой площадки, SaaS или любой веб-платформы с мобильной версией, Ruby, вероятно, является правильным выбором для вашего проекта. Вы узнаете наверняка, когда поговорите об этом с разработчиками, так что не стесняйтесь обращаться к нам.
Chvanikoff
Ну а кто-то php до сих пор выбирает, потому что зачем учить, например, nodejs (я не говорю, что он лучше). Кто-то на Java пишет, потому что зачем учить, например, Scala (я не говорю, что она лучше, хотя мнения имеются). А кто-то продолжает грызть руби, потому что Elixir это сложно (по их мнению).