34 votes

Avantages Groovy par rapport à Jython ou Jruby?

Pourquoi devrais-je choisir d'utiliser Groovy quand je pourrais utiliser Jython ou Jruby? La langue se fournir toutes les avantages inhérents à compenser le fait que Jython et Jruby compétences sont applicables à leur parent langues en dehors de la JVM?

Gardez à l'esprit que je fait exprès de garder cette question générique, mais s'il y a des avantages qui existent dans un domaine particulier, n'hésitez pas à les décrire.

MODIFIER
Pour clarifier, Si j'écris un peu de code dans Jruby, je peux maintenant, dans certains cas, déplacez-le code de l'extérieur de la machine en cas de besoin, ou à tout le moins, j'ai acquis une meilleure compréhension de Ruby. Alors que Groovy, les compétences ne sont applicables que lors de l'utilisation d'une langue qui vient de existe à l'intérieur de la JVM. Jython et Jruby ont construit dans cette avantage, ce qui ne Groovy ont pour pallier à cet inconvénient?

Si Groovy n'ont pas tous les avantages que vous avez trouvé, et vous dirais juste à l'aide de Jython ou Jruby, laissez-moi savoir.

Edit 2
Merci à tous pour toutes ces réponses, la plupart d'entre eux font la même remarque, Groovy s'intègre un peu mieux avec Java, alors Jython ou Jruby.

Suivi
À l'aide de Netbeans 6.5 que mon IDE, j'ai trouvé que Groovy à s'intègre mieux avec des projets Java puis Jruby. Je ne suis pas sûr si le manque d'intégration est un échec de Jruby ou Netbeans. Mais après l'avoir utilisé pour alittle Groovy semble définitivement avoir une jambe.

38voto

Ted Naleid Points 13349

Je l'ai fait assez vaste de développement en Ruby et Groovy (ainsi qu'un peu de Python à l'aide de Grinder comme un outil de test de charge).

De la 3, je préfère le plus Groovy. J'aime la fermeture de la syntaxe de la meilleure et je pense qu'il a le plus serré de l'intégration dans la façon dont il travaille avec d'autres classes java sur la JVM. Cela fait un petit moment que je n'ai utilisé JRuby, mais l'importation de classes de Java et de travail avec le chargeur de classe en JRuby n'ai pas l'impression de propre pour moi.

Le fait que Groovy est aussi essentiellement un sur-ensemble de Java signifie que l'énorme population de programmeurs Java y aura une absorption plus rapide temps de la cueillette des Groovy, plus de Rubis/JRuby. Ils peuvent commencer la programmation comme Java et lentement commencer à insérer idomatic groovy comme ils le ramasser.

Plus jusqu'à ce que vous demandez, je pense qu'un autre avantage de Groovy est que la langue que vous allez quand vous voulez optimiser quelque chose est presque exactement la même syntaxe, c'est de Java. Si vous travaillez dans le Ruby ou Python mondes, vous allez avoir à aller sur C qui est un grand changement ou de Java, qui est également tout à fait différente de celle de ces langues. La programmation Groovy tend à aider à garder vos compétences Java assez vive ainsi.

Si vous avez notamment accès à un Ruby ou Python infrastructure, ou une équipe qui a de familiarité avec ce genre de milieux, puis j'ai pu voir choix d'un de ces autres langues.

Vraiment, tous les 3 d'entre eux sont très gentils langues et ce que vous choisissez dépend de plus sur le problème que vous essayez de corriger et les ressources que vous avez à votre disposition. Une fois que vous avez devenir compétent dans un langage dynamique, ramassant un deuxième ou un troisième est beaucoup plus facile.

14voto

Miguel Ping Points 9013

Je dirais que si vous avez besoin de mélanger Java avec Jruby/Groovy, aller avec Groovy. Comme tout le monde le dit, Groovy a serré intégration Java.

Mais aussi loin que la langue de la mise en œuvre va, je préfère le langage Ruby plus Groovy, la langue tourne autour de lui-même, en Groovy, il y a quelques hacks qui sont inhérents à la mise en œuvre elle-même (il suffit de regarder une Graal stacktrace vs Rails stacktrace et vous verrez ce que je veux dire).

J'ai fortement recommande de voir Neal Ford comparaison de Groovy et JRuby

3voto

Andrew Whitehouse Points 1353

Je pense que Dick Mur a fait un très bon résumé des différences entre ces trois sur le Java Posse podcast (#213, environ 34:20) ... "JRuby a été conçu pour rendre les programmeurs heureux ... c'est un langage de programmation du développeur choix; Python a de solides racines dans la simplicité et l'éducation; Groovy est uniquement destiné à être le choix pour les développeurs Java ... c'est un environnement familier pour Java ... avec l'aide d'annotations".

En termes d'évolution de la langue à l'extérieur de la machine, je ne pense pas que le Java runtime impose beaucoup de frais généraux -- c'est une installation simple, et vous devez définir des variables d'environnement -- mais il fournit un certain nombre d'avantages, y compris une maturité d'exécution qui a été hautement optimisé, et un ensemble de bibliothèques. Le JRuby équipe désormais de meilleures performances que le natif de l'IRM. http://blog.headius.com/2008/08/twas-brillig.html

1voto

Anthony Cramp Points 1665

Je n'ai connu que Jython et Groovy. Le plus gros inconvénient de Jython, pour le moment, est que la dernière version recommandée pour la production (2.2.1) possède un ensemble de fonctionnalités qui "correspond à peu près à celui de Python-2.2" ( FAQ Jython ). Il existe une version bêta mettant en œuvre ce que je suppose être Python 2.5, qui est maintenant une version derrière. Je ne sais pas si on peut en dire autant de JRuby.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X