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ą:
- 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.
- Rozszerzenia C: JRuby obsługuje niektóre, but not all, rozszerzenia C, które są używane z MRI/YARV.
- 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.
- JRuby can use more memory.
- 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.
- Domyślnie JRuby doesn't enable ObjectSpace.
Potencjalne przyczyny mam to:
- 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.
- 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?