Pergunta

Eu estou olhando para experimentar JRuby e JRuby on Rails. Estou tendo informações constatação de problemas na diferença do que entre JRuby on Rails e Ruby on Rails.

O que é as diferenças que eu preciso olhar para fora?

Foi útil?

Solução

JRuby é a implementação Ruby que é executado em uma JVM enquanto Ruby Matz é uma implementação C.

Key apresenta a nota são:

  1. JRuby roda em Java VM e é compilado ou interpretado para baixo para código Java byte.
  2. JRuby pode se integrar com código Java. Se você tem bibliotecas de classes Java (das .jar), você pode fazer referência e usá-los de dentro do código Ruby com JRuby. Na outra direção, você também pode chamar o código JRuby de dentro Java. JRuby também pode usar os recursos da JVM e do servidor de aplicativos.
  3. JRuby é geralmente hospedado dentro servidores de aplicativos Java, como até mesmo o servidor web Tomcat GlassFish ou do Sol.
  4. Embora você não pode usar jóias nativas do Ruby com JRuby existem implementações JRuby para a maioria das bibliotecas Ruby populares.

Existem outras diferenças que são listados no wiki JRuby:

Outras dicas

Estou surpreso há uma coisa fundamental em falta em todas as respostas a esta pergunta, relacionada com GIL .

A principal diferença que você deve se preocupar com esp. em aplicações web, como aqueles construídos com Rails é verdadeira concorrência ( "Global Interpreter Lock" free). Quando dois segmentos estão executando (por exemplo, servindo 2 pedidos do utilizador) com JRuby eles são capazes de funcionar simultaneamente no interior de um único processo, enquanto que na ressonância magnética há a GIL (mesmo com fios nativas 1,9 de) que evita que executam o código Ruby em paralelo.

Para um desenvolvedor de aplicativos esta é a primeira coisa a ter em mente ao considerar JRuby, como ela realmente brilha com config.threadsafe! mas requer que você verifique se o seu código (e suas jóias código) para ser "verdadeiramente" thread-safe.

Posso estar errado, mas acho que você pode empacotar um aplicativo JRuby on Rails de uma forma que você não pode fazer com RoR normais - olhada Mingle ou similar. Faz com que seja possível vender sem deixar cair as calças / abertura da komono.

Dito isto, eu não sou suficientemente familiarizado com embalagem RoR, assim que não espera me a ele:)

principalmente ele deve funcionar da mesma. em jRoR você pode encher de acesso que não teria em RoR. Normalmente, a sua principalmente uma preocupação de implantação.

No entanto, se a sua aplicação RoR usa bibliotecas nativas que não têm um equivalente que é executado na JVM, que pode ser uma dor. No entanto a maioria das libs tem uma versão não nativo disponível (pelo menos os mais populares eu vim através).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top