Groovy

De Dos Ideas.
Saltar a: navegación, buscar

Groovy es un lenguaje orientado a objetos para la Plataforma Java, como alternativa al lenguaje de programación Java. Es un lenguaje dinámico, similar a Python, Ruby, Perl. Además puede usarse como lenguaje de scripting dentro de la Plataforma Java. Siendo precisos, Groovy es un Lenguage Dinámico Ágil.

Groovy utiliza una sintáxis con llaves para delimitar bloques, y se compila dinámicamente hacia bytecodes para la Máquina Virtual Java, funcionando así con cualquier librería ycódigo Java. El compilador Groovy genera bytecodes Java estándard que pueden usarse dentro de cualquier proyecto Java. Además, la mayoría del código Java es sintácticamente válido en Groovy.

Características

El lenguaje Groovy es un superconjunto del lenguaje Java. En general podemos renombrar un archivo .java en .groovy y va a funcionar (aunque hay algunas pocas incompatibilidades). Además, Groovy tiene algunas características que no existen en Java. Esto hace que Groovy sea un paso natural para los desarrolladores Java, ya que aprender Groovy implica aprender algunos detalles extra más.

Entre las características que distinguen a Groovy incluyen el tipado estático y dinámico, closures, sobrecarga de operadores, sintáxis nativa para la manipulación de listas y maps,soporte nativo para expresiones regulares, iteración polimórfica, expresiones embebidas dentro de strings.

La sintáxis de Groovy puede ser mucho más compacta que Java. Por ejemplo, una declaración común en Java 5 como ser: public class StdJava {

 public static void main(String argv[])
 {
   for (String it : new String [] {"Roberto", "Carlos", "Luis"})
     if (it.length() <= 4)
       System.out.println(it);
 }

}

puede expresarse en Groovy como:

["Roberto", "Carlos", "Luis"].findAll{it.size() <= 4}.each{println it}

Diferencias con Java

Groovy intenta ser una progresión natural para los desarrolladores Java. Groovy está pensado con el principio de "diseño por menor sorpresa", especialmente para desarrolladores con experiencia en Java.

A continuación veremos las diferencias más importantes entre ambos lenguajes.

Imports predeterminados

Los siguientes paquetes están importados de manera predeterminada, no es necesario usar un import para utilizarlos:

  • java.io.*
  • java.lang.*
  • java.math.BigDecimal
  • java.math.BigInteger
  • java.net.*
  • java.util.*
  • groovy.lang.*
  • groovy.util.*

Generales

Los arrays en Java se declaran con llaves:

int[] a = {1,2,3};

En cambio, en Groovy hay que escribir con corchetes la declaración:

int[] a = [1,2,3]

Los "punto y coma" (;) al final de una sentencia son opcionales. El return es opcional. Se puede usar el atributo this dentro de métodos estáticos (en cuyo caso referencia a la clase). Los métodos y clases son públicos de manera predeterminada. Por el momento no se pueden usar inner-class. No hay diferencia entre excepciones chequeadas y no-chequeadas, por lo que el compilador no controla el throws.

Ver también