JRuby on Rails против Ruby on Rails, в чем разница?

ruby-on-rails ruby jruby jrubyonrails

57704 просмотра

4 ответа

Я хочу попробовать JRuby и JRuby на Rails. У меня проблемы с поиском информации о разнице между JRuby on Rails и Ruby on Rails.

Какие различия мне нужно искать?

Автор: epochwolf Источник Размещён: 09.09.2019 04:51

Ответы (4)


157 плюса

Решение

JRuby - это реализация Ruby, которая работает на JVM, тогда как Matz's Ruby - это реализация на C.

Ключевые особенности, на которые следует обратить внимание:

  1. JRuby работает на виртуальных машинах Java и компилируется или интерпретируется как байт-код Java.
  2. JRuby может интегрироваться с кодом Java. Если у вас есть библиотеки классов Java (.jar), вы можете ссылаться на них и использовать их из кода Ruby с помощью JRuby. В другом направлении вы также можете вызывать код JRuby из Java. JRuby также может использовать возможности JVM и сервера приложений.
  3. JRuby обычно размещается на серверах приложений Java, таких как Sun GlassFish или даже веб-сервер Tomcat.
  4. Хотя вы не можете использовать нативные гемы Ruby с JRuby, существуют реализации JRuby для большинства популярных библиотек Ruby.

Есть и другие отличия, которые перечислены на вики JRuby:

Автор: user23117 Размещён: 30.09.2008 04:13

55 плюса

Я удивлен, что во всех ответах на этот вопрос отсутствует важная вещь, связанная с GIL .

Главное отличие, которое вы должны заботиться о ESP. в веб-приложениях, таких как приложения, построенные на Rails, настоящий параллелизм («Global Interpreter Lock» бесплатный). Когда два потока работают (например, обслуживают 2 пользовательских запроса) с JRuby, они могут работать одновременно в одном процессе, тогда как в MRI есть GIL (даже с собственными потоками 1.9), который избегает параллельного выполнения кода Ruby.

Для разработчика приложений это первое, что нужно иметь в виду при рассмотрении JRuby, поскольку он действительно хорош, config.threadsafe!но требует от вас, чтобы ваш код (и ваш гем-код) были «действительно» поточно-ориентированными.

Автор: kares Размещён: 29.06.2012 07:52

7 плюса

Я могу ошибаться, но я думаю, что вы можете упаковать приложение JRuby on Rails так, как вы не можете это сделать с обычным RoR - посмотрите на Mingle или подобное. Позволяет продавать без опускания штанов / открытия комоно.

Тем не менее, я недостаточно знаком с упаковкой RoR, так что не держите меня за это :)

Автор: Nic Wise Размещён: 07.10.2008 02:42

3 плюса

в основном это должно работать так же. в jRoR вы можете получить доступ к тому, чего не было бы в RoR. Обычно это в основном проблема развертывания.

Однако, если ваше приложение RoR использует собственные библиотеки, которые не имеют эквивалента, который работает на JVM, это может быть проблемой. Однако большинство библиотек имеют не родную версию (по крайней мере, популярные, с которыми я сталкивался).

Автор: Michael Neale Размещён: 30.09.2008 03:53
Вопросы из категории :
32x32