¿Es esta una forma razonable de convertir?
Sí
¿Puedo mantener todos mis métodos públicos y campos y en Java? Groovy es "solo" un superconjunto, ¿verdad?
Casi un superconjunto, pero no exactamente. Por ejemplo, ==
en Groovy llama al método .equals
, pero en Java comprueba si 2 referencias se refieren al mismo objeto.Otro ejemplo es que Groovy no soporta esta sintaxis para matrices construcción de
Object[] objs = new Object[] { 1, 2, 4 }
Un último ejemplo es que cuando se llama a un método sobrecargado, maravilloso utiliza el tipo de tiempo de ejecución de los parámetros de la hora de elegir el método a invocar, mientras que utiliza Java los tipos de parámetros en tiempo de compilación. This page tiene una lista bastante completa de las diferencias entre los dos idiomas.
¿Qué tipos de cosas no harías en Groovy, pero preferirías Java?
Escribo todo en Groovy, porque soy mucho más productivo con Groovy que con Java, y disfruto muchísimo la programación de Groovy. Solo usaría Java si hubiera un problema de rendimiento con algún código Y Podría demostrar que escribirlo en Java resolvió el problema. En la práctica, esto en realidad nunca me ha sucedido a mí.
También pueden existir razones sociopolíticas para usar Java, p. Ej. Es necesario que muchas personas mantengan cierto código, algunos de los cuales no conocen Groovy y no quieren aprenderlo.
Don muchas gracias por esta respuesta, especialmente la última parte. La optimización temprana probablemente no es tan buena y es un gran desperdicio del tiempo de desarrollo. ¿Cómo encuentras que el autocompletado está en Groovy (bueno, malo, no me importa)? –
Autocompletar en IntelliJ es bueno. La última vez que lo revisé no fue satisfactorio en Eclipse/Netbeans, pero eso fue hace unos 6 meses y las cosas pueden haber mejorado desde entonces. –
Lo revisé la semana pasada y no fue tan bueno. Especialmente esa cosa autocorrecta en Eclipse que es tan sorprendente (¿hacer un método en la Clase X?) No estaba sucediendo en Groovy. La razón por la que estoy tan interesado en este problema es porque trabajo en Ruby casi sin autocompletar (Netbeans), pero creo que es posible que Ruby sea demasiado difícil de acertar. De todos modos ... gracias de nuevo. Inicié mi intellij GRATIS hoy, así que lo verificaré. –