groovy - framework - spring mvc 4 tutorial español
Groovy ventajas sobre Jython o Jruby? (5)
Creo que Dick Wall dio un muy buen resumen de las diferencias entre estos tres en el podcast de Java Posse (# 213, sobre 34:20 en) ... "JRuby fue diseñado para hacer felices a los programadores ... es una elección del desarrollador del lenguaje de programación ; Python tiene raíces muy sólidas en la simplicidad y la educación; Groovy está dirigido directamente a ser la elección de los desarrolladores de Java ... es un entorno muy familiar para Java ... con soporte para anotaciones ".
En términos de mover el lenguaje fuera de la JVM, no creo que el tiempo de ejecución de Java imponga una sobrecarga (es una instalación simple, y debe establecer algunas variables de entorno), pero proporciona una serie de beneficios, incluido un tiempo de ejecución maduro que ha sido altamente optimizado y un gran conjunto de bibliotecas. El equipo JRuby ahora informa un mejor rendimiento que la resonancia magnética nativa. http://blog.headius.com/2008/08/twas-brillig.html
¿Por qué elegiría usar Groovy cuando pudiera usar Jython o Jruby? ¿Proporciona el lenguaje ventajas inherentes para compensar el hecho de que las habilidades de Jython y Jruby son aplicables a sus lenguajes originales fuera de la JVM?
Tenga en cuenta que intencionalmente mantengo esta pregunta genérica, pero si hay ventajas que existen en un dominio en particular, no dude en describirlas.
EDITAR
Para aclarar, si escribo algún código en Jruby, ahora, en algunos casos, puedo mover ese código fuera de la JVM si es necesario, o al menos puedo obtener una mejor comprensión de Ruby. Mientras que las habilidades de Groovy son aplicables solo cuando se usa un lenguaje que simplemente existe dentro de la JVM. Jython y Jruby tienen esto construido en ventaja, ¿qué tiene que hacer Groovy para compensar esta desventaja?
Si Groovy no tiene ninguna ventaja que haya encontrado, y sugeriría que solo use Jython o Jruby, hágamelo saber.
Editar 2
Gracias a todos por todas las respuestas, la mayoría de ellos dice lo mismo, Groovy se integra ligeramente mejor con Java que con Jython o Jruby.
Seguir
Usando Netbeans 6.5 como mi IDE, descubrí que Groovy se integra mejor con los proyectos de Java que con Jruby. No estoy seguro si la falta de integración es un error de Jruby o Netbeans. Pero después de usarlo un poco Groovy definitivamente parece tener una ventaja.
He hecho un desarrollo bastante extenso en Ruby y Groovy (así como un poco de Jython usando Grinder como herramienta de prueba de carga).
De los 3, prefiero Groovy más. Me gusta más la sintaxis de cierre y creo que tiene la integración más estrecha en cuanto a cómo funciona con otras clases de Java en JVM. Ha pasado un tiempo desde la última vez que utilicé JRuby, pero importar clases de Java y trabajar con el cargador de clases en JRuby no me parecía tan limpio.
El hecho de que Groovy también es esencialmente un superconjunto de Java significa que la enorme población de programadores de Java tendrá un tiempo de captación más rápido al elegir Groovy en lugar de Ruby / JRuby. Pueden comenzar a programarlo como si fuera Java y comenzar a insertar lentamente idomatic groovy mientras lo levantan.
Más al punto de lo que estás preguntando, creo que otra ventaja de Groovy es que el lenguaje al que te diriges cuando quieres optimizar algo es casi la misma sintaxis, es Java. Si trabajas en los mundos de Ruby o Python, vas a tener que ir a C, que es un gran cambio o Java, que también es bastante diferente de esos idiomas. La programación en Groovy tiende a ayudar a mantener sus habilidades de Java algo nítidas también.
Si tiene acceso particular a una infraestructura de Ruby o Python, o un equipo que esté familiarizado con ese tipo de entornos, entonces podría ver elegir uno de esos otros idiomas.
En realidad, los 3 idiomas son muy agradables y lo que elijas debe depender más del problema que estás tratando de solucionar y de los recursos que tienes disponibles para ti. Una vez que se ha vuelto competente en un lenguaje dinámico, es mucho más fácil elegir un segundo o un tercero.
No sé por qué deberías elegir Groovy porque no conozco tus antecedentes. Si usted es un desarrollador de Java, Groovy se siente más similar a su idioma actual que JRuby o Jython. Groovy combina lo mejor de Java, el lenguaje, Java, la plataforma y Ruby, el idioma.
Solo he tenido experiencia con Jython y Groovy. La mayor desventaja con Jython, por el momento, es que la última versión recomendada para producción (2.2.1) tiene un conjunto de características que "aproximadamente corresponde a la de Python-2.2" ( preguntas frecuentes de Jython ). Hay una versión beta implementando lo que supongo que es Python 2.5, que ahora es una versión detrás. No sé si se puede decir lo mismo de JRuby.
Yo diría que si necesitas mezclar Java con Jruby / Groovy, ve con Groovy. Como todos dijeron, Groovy tiene una integración Java más estricta.
Pero en cuanto a la implementación del lenguaje, prefiero el lenguaje Ruby sobre Groovy, el lenguaje gira en torno a sí mismo, en Groovy hay algunos hacks que son inherentes a la implementación en sí (solo mire una pila de Grails vs. una stack stack de Rails y Veré lo que quiero decir).
Recomiendo ver la comparación de Neal Ford de Groovy y JRuby