Diferencia entre revisiones de «Groovy»

(Fuente)
(Etiqueta: nuestro-nuestra)
Línea 31: Línea 31:
  
 
== Características ==
 
== Características ==
El lenguaje Groovy es un superconjunto del lenguaje Java. En general se puede 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.
+
Groovy es un lenguaje dinámico para la máquina virtual que nace en 2003 de la mano de James Strachan y Bob McWhirter, y se estandariza en el JSR-241 un año después. Permite acceder al API estándar [[Java]] desde un enfoque diferente gracias al soporte de funcionalidades como la sobrecarga de operadores, la creación de tipos en tiempo de ejecución o las Closures. Cualquier cosa que pueda hacerse con Groovy es posible también con Java, y viceversa. La diferencia entre ambos lenguajes está en su propia naturaleza, que provoca que el código necesario para una determinada tarea en Groovy sea en promedio unas cinco veces más breve que el equivalente en Java.
 
+
Groovy nació con la misión de llevarse bien con Java, vivir en la Máquina Virtual y soportar los tipos de datos estándar, pero añadiendo características dinámicas y sintácticas presentes en otros lenguajes como [[Python]], [[Smalltalk]] o [[Ruby]]. Así, el código fuente Groovy se compila a bytecodes igual que Java, y es posible instanciar objetos Java desde Groovy y viceversa. Lo que Groovy aporta es una sintaxis que aumenta enormemente la productividad y un entorno de ejecución que nos permite manejar los objetos de formas que en Java serían extremadamente complicado.
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}
 
  
 
== Closures ==
 
== Closures ==
Línea 63: Línea 46:
 
La implementación de las closures implica un gran avance en el mundo de la programación, debido a que no es necesario crear un nuevo método pudiendo utilizar las variables locales del actual.
 
La implementación de las closures implica un gran avance en el mundo de la programación, debido a que no es necesario crear un nuevo método pudiendo utilizar las variables locales del actual.
  
==Diferencias con Java==
+
== Ventajas ==
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.
+
Compatibilidad      con todo el código heredado Java.
 
+
La      potencia y robustez de Java en aquellas áreas en que sea necesario.
==Imports predeterminados==
+
La      posibilidad de usar Groovy para aumentar nuestra productividad en áreas      como:  
 
+
* Código      de integración entre componentes.
Los siguientes paquetes están importados de manera predeterminada, no es necesario usar un import para utilizarlos:
+
* Código      de configuración.
* java.io.*
+
* Lenguajes      de dominio específico ([[DSLs]])
* java.lang.*
+
* Capa      de presentación ([[Swing]], web)
* java.math.BigDecimal
+
* Automatización      de tareas y desarrollo de Scripts.
* java.math.BigInteger
+
* Programación      dinámica (creación y alteración de tipos de datos en tiempo de ejecución).
* java.net.*
+
== Fuente ==
* java.util.*
+
*http://www.dosideas.com/cursos/mod/resource/view.php?id=107
* groovy.lang.*
+
*http://www.escueladegroovy.com/informacion/groovy-grails
* 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.
 
 
 
== Fuentes ==
 
*[http://www.escueladegroovy.com/informacion/groovy-grails Escuela de groovy]
 
*[http://www.dosideas.com/wiki/Groovy Dosideas Groovy ]
 
  
 
[[Category:Lenguajes_de_programación_orientada_a_objetos]][[Category:Herramientas_de_programación]][[Category:Informática]]
 
[[Category:Lenguajes_de_programación_orientada_a_objetos]][[Category:Herramientas_de_programación]][[Category:Informática]]

Revisión del 15:38 2 dic 2011

Información sobre la plantilla
200px-Groovy-logo.png
Fecha de Creación2003
Última versión estable1.8.2 (5 de septiembre de 2011)
GéneroLenguaje de Programación

Groovy. 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

Groovy es un lenguaje dinámico para la máquina virtual que nace en 2003 de la mano de James Strachan y Bob McWhirter, y se estandariza en el JSR-241 un año después. Permite acceder al API estándar Java desde un enfoque diferente gracias al soporte de funcionalidades como la sobrecarga de operadores, la creación de tipos en tiempo de ejecución o las Closures. Cualquier cosa que pueda hacerse con Groovy es posible también con Java, y viceversa. La diferencia entre ambos lenguajes está en su propia naturaleza, que provoca que el código necesario para una determinada tarea en Groovy sea en promedio unas cinco veces más breve que el equivalente en Java. Groovy nació con la misión de llevarse bien con Java, vivir en la Máquina Virtual y soportar los tipos de datos estándar, pero añadiendo características dinámicas y sintácticas presentes en otros lenguajes como Python, Smalltalk o Ruby. Así, el código fuente Groovy se compila a bytecodes igual que Java, y es posible instanciar objetos Java desde Groovy y viceversa. Lo que Groovy aporta es una sintaxis que aumenta enormemente la productividad y un entorno de ejecución que nos permite manejar los objetos de formas que en Java serían extremadamente complicado.

Closures

Una closure se podría describir como un bloque de código reutilizable, que retiene la información entorno donde fueron definidos. Esta forma de trabajo es muy parecida a JavaScript, ya que es muy parecido a la definición de una función anónima en un script. Las closures pueden recibir parámetros, puesto que los tipos de Groovy son opcionales, sólo es necesario escribir el nombre del parámetro. El uso de closures es tan común, que si no se ha definido un parámetro específico de todos modos estará disponible una variable it que representa el valor del parámetro.

  def printOut = {
    print it
  } 
  (0..9).each(printout)

La implementación de las closures implica un gran avance en el mundo de la programación, debido a que no es necesario crear un nuevo método pudiendo utilizar las variables locales del actual.

Ventajas

Compatibilidad con todo el código heredado Java. La potencia y robustez de Java en aquellas áreas en que sea necesario. La posibilidad de usar Groovy para aumentar nuestra productividad en áreas como:

  • Código de integración entre componentes.
  • Código de configuración.
  • Lenguajes de dominio específico (DSLs)
  • Capa de presentación (Swing, web)
  • Automatización de tareas y desarrollo de Scripts.
  • Programación dinámica (creación y alteración de tipos de datos en tiempo de ejecución).

Fuente