Использовать JRuby для веб-приложений Ruby? Действительно ли это стоит того?

Пожалуйста, попробуйте модуль pexpect. Вот мой код:

import pexpect
remove = pexpect.spawn('sudo dpkg --purge mytool.deb')
remove.logfile = open('log/expect-uninstall-deb.log', 'w')
remove.logfile.write('try to dpkg --purge mytool\n')
if remove.expect(['(?i)password.*']) == 0:
    # print "successfull"
    remove.sendline('mypassword')
    time.sleep(2)
    remove.expect(pexpect.EOF,5)
else:
    raise AssertionError("Fail to Uninstall deb package !")
14
задан Sasha Chedygov 30 May 2009 в 01:51
поделиться

2 ответа

JRuby - одна из наиболее полных реализаций Ruby (есть много других, таких как IronRuby, Maglev, Rubinius, XRuby, YARV, MacRuby). Он очень всеобъемлющий, поэтому, если вы не используете драгоценные камни, использующие собственный код C, у вас, скорее всего, будет просто отличная совместимость.

JRuby немного быстрее, чем фактическая реализация C, но поддерживает фактические потоки, тогда как официальная реализация немного пытается его получить (она все еще использует Зеленые потоки ). Использование потоков Java из JRuby довольно тривиально, хотя для этого потребуется связать код с Java (хотя с небольшим DI это соединение произойдет только один раз).

Еще одно преимущество: время выполнения инструменты. Java в качестве платформы вместо языка, имеет множество средств выполнения, которые помогут вам диагностировать проблемы и проверить состояние приложения (профилировщики, JConsole и т. д.).

Инженеры Twitter также упомянули, что виртуальная машина Ruby не может быть средой для долгоживущих процессов , в то время как JVM очень хороша в этом, потому что она была оптимизирована для этого за последние десять лет .

Ruby также имел немного недавно возникла проблема безопасности, которая не повлияла на реализацию JRuby.

С другой стороны, вашему проекту требуется больше артефактов (JVM, JRuby jar и т. д.). Если вы используете приложение, которое будет работать долго, и вам нужна лучшая поддержка во время выполнения, JRuby может стать отличным вариантом. В противном случае вы можете спокойно подождать, пока вам не понадобятся эти вещи, чтобы действительно сделать ход (скорее всего, все пройдет гладко).

Инженеры Twitter также упомянули, что виртуальная машина Ruby не может быть средой для долгоживущих процессов , тогда как JVM очень хороша в этом, потому что она оптимизирована для этого более чем последние десять лет .

В Ruby недавно также возникла небольшая проблема с безопасностью, которая не повлияла на реализацию JRuby.

С другой стороны, вашему проекту требуется больше артефактов (JVM, JRuby jar и т. д.). Если вы используете приложение, которое будет работать долго, и вам нужна лучшая поддержка во время выполнения, JRuby может стать отличным вариантом. В противном случае вы можете спокойно подождать, пока вам не понадобятся эти вещи, чтобы действительно сделать ход (скорее всего, все пройдет гладко).

Инженеры Twitter также упомянули, что виртуальная машина Ruby не может быть средой для долгоживущих процессов , тогда как JVM очень хороша в этом, потому что она оптимизирована для этого более чем последние десять лет .

В Ruby недавно также возникла небольшая проблема с безопасностью, которая не повлияла на реализацию JRuby.

С другой стороны, вашему проекту требуется больше артефактов (JVM, JRuby jar и т. д.). Если вы используете приложение, которое будет работать долго, и вам нужна лучшая поддержка во время выполнения, JRuby может стать отличным вариантом. В противном случае вы можете спокойно подождать, пока вам не понадобятся эти вещи, чтобы действительно сделать ход (скорее всего, все пройдет гладко).

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

Ruby также недавно имел небольшую проблему безопасности, которая не повлияла на реализацию JRuby.

On с другой стороны, вашему проекту требуется больше артефактов (JVM, JRuby jar и т. д.). Если вы используете приложение, которое будет работать долго, и вам нужна лучшая поддержка во время выполнения, JRuby может стать отличным вариантом. В противном случае вы можете спокойно подождать, пока вам не понадобятся эти вещи, чтобы действительно сделать ход (скорее всего, все пройдет гладко).

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

Ruby также недавно имел небольшую проблему безопасности, которая не повлияла на реализацию JRuby.

On с другой стороны, вашему проекту требуется больше артефактов (JVM, JRuby jar и т. д.). Если вы используете приложение, которое будет работать долго, и вам нужна лучшая поддержка во время выполнения, JRuby может стать отличным вариантом. В противном случае вы можете спокойно подождать, пока вам не понадобятся эти вещи, чтобы действительно сделать ход (скорее всего, все пройдет гладко).

Если вы используете приложение, которое будет работать долго, и вам нужна лучшая поддержка во время выполнения, JRuby может стать отличным вариантом. В противном случае вы можете спокойно подождать, пока вам не понадобятся эти вещи, чтобы действительно сделать ход (скорее всего, все пройдет гладко).

Если вы используете приложение, которое будет работать долго, и вам нужна лучшая поддержка во время выполнения, JRuby может стать отличным вариантом. В противном случае вы можете спокойно подождать, пока вам не понадобятся эти вещи, чтобы действительно сделать ход (скорее всего, все пройдет гладко).

23
ответ дан 1 December 2019 в 09:13
поделиться

I use and love JRuby on daily basis, but I suggest you use MRI (a.k.a. C-Ruby) unless you have a actual need for JRuby.

Reasons for using JRuby:

  1. Java integration
  2. Restricted environment (your machine has Java installed by not ruby and you don't have root)
  3. Restricted environment (you have ruby installed but don't have root so can't install gems you need)
  4. You reached the limits of Ruby 1.8 performance and cannot use 1.9

From what you've described, you don't have any of the above reasons.

C-Ruby 1.9 has significant performance improvements over C-Ruby 1.8. I've yet to read (or find out for myself) how C-Ruby 1.9 compares with JRuby 1.8 or JRuby 1.9. In anycase, you don't have a performance problem (yet) so don't worry about it.

The good news is, you can start with either and convert later if needs be. It's all Ruby, and the Webrick and Mongrel gems work with both.

As mentioned above, ruby gems that have C extensions cannot be installed under JRuby. Hopefully this will change in the future if ruby C extensions utilize FFI.

http://kenai.com/projects/ruby-ffi/pages/Home

http://isitjruby.com/

6
ответ дан 1 December 2019 в 09:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: