Pergunta

Por que eu iria escolher para usar Groovy quando eu poderia usar Jython ou JRuby? Será que a linguagem fornece quaisquer vantagens inerentes para compensar o fato de que Jython e JRuby habilidades são aplicáveis ??a sua idiomas pai fora da JVM?

Tenha em mente que eu propositadamente mantendo esta pergunta genérica, mas se houver quaisquer vantagens que existem em um domínio particular, não hesite para descrevê-los.

Editar
Para esclarecer, Se eu escrever algum código em JRuby, agora eu posso, em alguns casos, mova que fora código da JVM se necessário, ou pelo menos eu ganhei um melhor entendimento do Ruby. Considerando Groovy habilidades só são aplicáveis ??quando utilizando uma linguagem que só existe dentro do JVM. Jython e JRuby ter este construído em vantagem, o que Groovy tem que compensar essa desvantagem?

Se Groovy não tem quaisquer vantagens que você encontrou, e você sugeriria apenas usando Jython ou JRuby, deixe-me saber.

Editar 2
Obrigado a todos por todas as respostas, a maioria deles fazem o mesmo ponto, Groovy integra ligeiramente melhor com Java, em seguida, Jython ou JRuby.

Acompanhamento
Usando o NetBeans 6.5 como meu IDE eu descobri que Groovy para se integra melhor com projetos Java então JRuby. Não tenho a certeza se a falta de integração é uma falha do JRuby ou Netbeans. Mas depois de usá-lo para alittle Groovy definitivamente parece ter uma perna para cima.

Foi útil?

Solução

Já fiz bastante extenso desenvolvimento em Ruby e Groovy (bem como um pouco Jython usando Grinder como uma ferramenta de teste de carga).

Dos 3, eu prefiro Groovy mais. I como o fechamento sintaxe o melhor e eu acho que ele tem a integração mais apertada em como ele funciona com outras classes Java na JVM. Tem sido um pouco desde a última vez utilizado JRuby, mas importar classes Java e trabalhar com o carregador de classe no JRuby não se sentia tão limpo para mim.

O fato de que Groovy também é, essencialmente, um super conjunto de meios de Java que a enorme população de programadores Java lá fora, vai ter um tempo mais rápido captação em escolher Groovy por cima Ruby / JRuby. Eles podem começar a programar isso como se de Java e lentamente começar a inserir Groovy idomatic como eles buscá-lo.

Mais ao ponto de que você está pedindo, eu acho que uma outra vantagem de Groovy é que a linguagem que você vá para quando você deseja otimizar alguma coisa é quase exatamente a mesma sintaxe, é Java. Se você está trabalhando nos mundos Ruby ou Python, você vai ter que ir para qualquer C, que é uma grande mudança ou Java, que também é bastante diferente do que essas línguas. Programação em Groovy tende a ajudar a manter suas habilidades de Java um pouco afiada assim.

Se você tem acesso especial a um Ruby ou Python infra-estrutura, ou uma equipe que tem familiaridade com esse tipo de ambientes, então eu podia ver a escolha de uma dessas outras línguas.

Na verdade, todos os 3 deles são muito agradáveis ??línguas eo que você escolhe deve depender mais sobre o problema que você está tentando consertar e os recursos que você tem disponível para você. Uma vez que você se tornar proficientes em uma linguagem dinâmica, pegando uma segunda ou uma terceira é muito mais fácil.

Outras dicas

Eu diria que se você precisa misturar Java com JRuby / Groovy, ir com Groovy. Como todos disseram, Groovy tem maior integração Java.

Mas, tanto quanto a linguagem aplicação vai, eu prefiro a linguagem Ruby sobre Groovy, os gira língua em torno de si, em Groovy existem alguns hacks que são inerentes à a própria aplicação (apenas assistir a um Grails stacktrace vs. um Rails stacktrace e você verá o que quero dizer).

I altamente recomendaria ver de Groovy e JRuby

Eu acho que Dick parede deu um muito bom resumo das diferenças entre estes três sobre o podcast Java Posse (# 213, cerca de 34:20 em) ... "JRuby foi projetado para fazer programadores felizes ... é a escolha de um desenvolvedor linguagem de programação; Python tem muito fortes raízes na simplicidade e educação; Groovy é apontado em quadrado em ser a escolha para desenvolvedores Java ... é um ambiente muito familiar para Java. .. com suporte para anotações".

Em termos de movimento do lado de fora linguagem da JVM, eu não acho que as impõe tempo de execução Java muito de uma sobrecarga - é instalar um simples, e você precisa definir algumas variáveis ??de ambiente - mas fornece um número de benefícios, incluindo um tempo de execução maduro que tenha sido altamente optimizada, e um grande conjunto de bibliotecas. A equipe JRuby estão relatando um melhor desempenho do que a MRI nativa. http://blog.headius.com/2008/08/twas-brillig. html

Eu só tinha experiência com Jython e Groovy. A maior desvantagem com Jython, no momento, é que a última versão recomendada para produção (2.2.1) tem um conjunto de recursos que "corresponde aproximadamente à de Python-2.2" ( Jython FAQ ). Há um beta implementar o que eu assumo é Python 2.5, que agora é um atrás de versão. Não sei se o mesmo pode ser dito para JRuby.

Eu não sei porque você deve escolher Groovy porque eu não sei o seu fundo. Se você é um desenvolvedor Java Groovy sente mais parecido com o idioma atual, então JRuby ou Jython. Groovy combina o melhor de Java, a linguagem, Java, a plataforma, e Ruby a língua.

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