2010-10-13 24 views
7

W Is there an advantage to running JRuby if you don't know any Java? ludzie sugerowali używanie JRuby, jeśli chcesz tylko lepszej implementacji Ruby niż "Ruby" (MRI/YARV).Jakie są powody, dla których nie używam JRuby zamiast MRI/YARV?

Jakie są potencjalne powody nie używania JRuby?

Te, które zostały wymienione przez innych są:

  1. celowa dla krótkich programów. JRuby jest opisany jako szybszy dla dłuższych programów, ale ma dłuższy czas inicjalizacji. Obejścia są omawiane in this question.
  2. Rozszerzenia C: JRuby obsługuje niektóre, but not all, rozszerzenia C, które są używane z MRI/YARV.
  3. Współbieżność jako miecz obosieczny. There's non-thread-safe code out there, których ludzie nie wykryli, ponieważ najpopularniejsza implementacja nie ma prawdziwej współbieżności.
  4. JRuby can use more memory.
  5. JRuby ma decided not to do pewne rzeczy, które robi CRuby. Obejmuje to kontynuacje (które i tak uważam za przestarzałe w CRuby) i fork. Mają też innego rodzimego endianina i precyzję czasu.
  6. Domyślnie JRuby doesn't enable ObjectSpace.

Potencjalne przyczyny mam to:

  1. bibliotek użyć nie może być przeznaczony do pracy pod JRuby. Na przykład, BioRuby, który ma 127 obserwatorów i 60 rozwidleń na GitHub, miał minor incompatibility z JRuby.
  2. Obawa, niepewność i wątpliwość dotyczące stosowania mniej popularnej implementacji. Wiem, że JRuby lepiej przekazuje RubySpec niż CRuby, ale RubySpec nie jest jeszcze kompletny.

Czy są jakieś inne powody, dla których nie używałbyś JRuby?

Odpowiedz

1

Osobiście, chociaż jest instalowany fabrycznie na komputerach Mac, nie zawsze instaluję Javę na maszynach z systemem Linux.

Na marginesie, RVM należy chyba wymienić tutaj jako kanoniczny sposób na żonglowanie wieloma (8 lub więcej ?!) różnymi tłumaczami Ruby.

0

JRuby nie daje wysokiego priorytetu $SAFE. Post na blogu pochodzi z 2007 roku, ale od tego czasu nie natknąłem się na żadne zmiany.

Powiązane problemy