Многие люди путают Ruby и Ruby on Rails. В результате, несмотря на несколько принципиальных различий, их схожие названия и общее происхождение продолжают сбивать с толку — особенно среди новых разработчиков.

Эта статья прояснит эту путаницу, изучив историю их взаимосвязи и объяснив, когда вы можете писать код на Ruby или сразу переходить к созданию с помощью Ruby on Rails.

От Ruby к Rails

Итак, чем Ruby отличается от Ruby on Rails?

Ruby — это широко используемый объектно-ориентированный язык сценариев общего назначения с открытым исходным кодом, построенный на языке программирования C. Это кроссплатформенный язык, поддерживаемый в Windows, macOS и Linux. Ruby был разработан с учетом простоты и удовольствия разработчиков, поэтому он популярен в разработке веб-приложений.

Ruby on Rails, иногда называемый просто «Rails», представляет собой среду веб-разработки с открытым исходным кодом, основанную на архитектурном шаблоне модель-представление-контроллер (MVC). Вы используете Rails для разработки веб-приложений, управляемых базой данных, и он использует язык Ruby.

Давайте копнем немного глубже в оба.

Что такое Рубин?

Ruby был создан в 1993 году японским программистом Юкихиро Мацумото, также известным как Matz. Первая версия Ruby, Ruby 0.95, была выпущена 21 декабря 1995 года.

Ruby, как Perl и Python, — это интерпретируемый язык программирования высокого уровня, предназначенный для повышения производительности программистов. Мац создал Ruby как объектно-ориентированный язык, подобный Ada, поэтому он обеспечивает идеальный баланс между производительностью и простотой.

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

За последнее десятилетие Ruby неизменно входит в число самых популярных языков программирования. Что привлекает многих разработчиков в Ruby, так это его простота и низкий порог входа для новичков.

Давайте обсудим некоторые существенные особенности Ruby.

Универсальный язык программирования

Ruby считается чистым объектно-ориентированным языком. Все в Ruby является объектом. Даже примитивные типы данных, такие как целые числа, имеют методы, переменные экземпляра и поддерживают цепочку методов.

Например, вы можете использовать два разных метода для целого числа, используя точечную запись, чтобы найти абсолютное значение и возвести его в степень три, и все это в одной строке. Взгляните на код ниже. Здесь, abs используется для нахождения абсолютного значения -3, и pow(3) возводит абсолютное значение -3 в степень 3.

value = -3.abs.pow(3)

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

Библиотеки

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

Каждый гем содержит код и соответствующие инструменты тестирования, документацию и гемспец — файл, содержащий информацию о геме. Спецификация драгоценного камня содержит имя драгоценного камня, описание и все необходимые зависимости.

В качестве примера рассмотрим популярный гем k8s-client. Разработчики Ruby могут добавить этот драгоценный камень в свое приложение, предоставляя доступ к клиентской библиотеке Kubernetes.

Есть также драгоценные камни для конкретных случаев использования, например nytimes_top_stories. Как следует из названия, вы можете включить этот драгоценный камень в свое приложение, чтобы получать последние заголовки новостей из New York Times.

Использование Рубина

Некоторые из наиболее распространенных применений Ruby — это веб-разработка, генераторы статических сайтов (внешняя разработка), серверные приложения, DevOps, автоматизация, инструменты командной строки и приложения для обработки данных.

Вот некоторые примеры:

  • Ruby on Rails и Padrino: фреймворки веб-приложений. Да, Ruby поддерживает ту же структуру, с которой его здесь сравнивают.
  • Jekyll: Генератор статических сайтов.
  • Capybara и Minitest: инструменты автоматизации и тестирования.
  • Chef, Puppet: платформы DevOps.
  • Redis: инструменты обработки и хранения данных.
  • Пассажир: веб-сервер и сервер приложений.

Преимущества и недостатки Руби

Ruby предоставляет множество преимуществ по сравнению с другими языками программирования. Это также имеет несколько недостатков. В приведенных ниже списках показаны некоторые преимущества (и недостатки) Ruby. Учитывайте эти моменты, решая, подходит ли Ruby для вашего случая использования или вместо этого вы будете использовать такой язык, как Python или C#.

Плюсы

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

Минусы

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

Что такое Ruby на Rails?

Ruby on Rails — одна из самых популярных платформ для разработки веб-приложений на Ruby, доступная по лицензии MIT. Это также одна из наиболее частых причин, по которой разработчики изучают Ruby. В качестве платформы Ruby on Rails упрощает создание веб-приложений, предоставляя заранее созданную структуру и все компоненты, необходимые для создания веб-приложения, поэтому разработчикам не нужно создавать все с нуля.

Готовая структура проекта Ruby on Rails.

Используя архитектуру MVC, вы можете использовать Ruby on Rails для создания полнофункциональных приложений, охватывающих интерфейсную и внутреннюю части.

Дэвид Хайнемейер Ханссон выпустил Ruby on Rails как проект с открытым исходным кодом в 2004 году. Ханссон создал Ruby on Rails во время работы над инструментом управления проектами Basecamp от компании 37Signals. Ruby on Rails уделяет большое внимание парадигме «соглашение важнее конфигурации» (CoC) и принципу «не повторяйся» (DRY). CoC означает, что разработчики пишут меньше кода и выполняют меньше конфигураций, если следуют предопределенным соглашениям. DRY позволяет избежать избыточности и уменьшает повторение шаблонов программного обеспечения.

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

Использование Ruby on Rails

Хотя Ruby имеет множество вариантов использования, Ruby on Rails гораздо более сфокусирован. Это платформа, предназначенная исключительно для разработки веб-приложений. Хотя у него может быть узкая направленность, то, что он делает, он делает хорошо. Ruby on Rails использовался для создания некоторых из самых популярных веб-приложений, таких как GitHub, Twitch, Soundcloud, Shopify, Hulu, Airbnb и BaseCamp.

Преимущества и недостатки Ruby on Rails

Будучи платформой с открытым исходным кодом, Ruby on Rails предлагает несколько преимуществ, которые могут оценить разработчики с большим опытом. Тем не менее, эта структура не может быть бескомпромиссной. Поскольку выбор платформы так же важен, как и выбор языка программирования, учтите следующее, чтобы убедиться, что вы сделали правильный выбор.

Плюсы

  • Фреймворк с открытым исходным кодом — бесплатный для использования.
  • Преимущества высокоразвитой экосистемы Ruby.
  • Имеет некоторые встроенные и включенные по умолчанию меры безопасности, включая встроенную защиту от атак XSS, CSRF и SQL-инъекций.
  • Огромное количество библиотек или драгоценных камней делает Ruby on Rails очень продуктивным фреймворком.
  • Позволяет быстрее создавать прототипы и является хорошим вариантом для MVP.

Минусы

  • Большое количество зависимостей драгоценных камней приводит к замедлению загрузки, что отрицательно влияет на производительность разработчиков.
  • Предопределенная структура и готовые компоненты упрощают создание обычных веб-приложений с использованием Ruby on Rails. Однако это приводит к отсутствию гибкости, что затрудняет настройку.
  • Ускорение разработки приводит к снижению производительности, что часто вызвано проблемами архитектуры сервера и базы данных. Эти проблемы становятся более очевидными при масштабировании приложения.

Ruby против Ruby on Rails: ключевые различия

Итак, мы рассмотрели отдельные детали Ruby и Ruby on Rails. Давайте теперь посмотрим на их принципиальные различия.

Ruby против Ruby on Rails: чему научиться в первую очередь

Теперь, когда мы обсудили различия между Ruby и Ruby on Rails, вам может быть интересно, что изучать первым: язык или фреймворк. Сначала выберите язык. Итак, если вы хотите освоить Ruby on Rails, сначала изучите Ruby самостоятельно. Предварительное изучение Ruby не является обязательным условием для изучения Ruby on Rails.

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

Это справедливо и для других фреймворков. Например, Laravel написан на PHP, а Nest.js — на Typescript. Таким образом, полезнее изучить PHP, прежде чем переходить к Laravel, или изучить Typescript, прежде чем переходить к Nest.js.

Краткое содержание

В этой статье обсуждалась понятная путаница, возникающая из-за одинаково названных Ruby и Ruby on Rails. Теперь, когда мы рассмотрели историю и популярность Ruby и Ruby on Rails и объяснили существенные и существенные различия между ними, стало ясно, что это не одно и то же.

Различия стали очевидными благодаря перечислению и объяснению некоторых наиболее распространенных вариантов использования Ruby и Ruby on Rails, их преимуществ и недостатков, а также перечислению некоторых популярных сайтов, приложений и инструментов, написанных на Ruby или с использованием инфраструктуры Ruby on Rails.

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

Вы не можете использовать Ruby on Rails без использования Ruby. Ruby on Rails использует преимущества безопасности, уже присутствующие в Ruby, и добавляет дополнительные функции безопасности, что делает его очень безопасной средой. Кроме того, Ruby основан на принципе проектирования пользовательского интерфейса, тогда как Ruby on Rails был разработан по принципу DRY и CoC.

Вы можете развернуть свой проект Ruby или Rails на платформе хостинга приложений Kinsta. Начните с рассмотрения нескольких примеров быстрого запуска, которые помогут вам начать работу над приложением.

Стив Бонистил

Кинста

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