Clase de Groovy para Seminario de ingeniería en informática. Cátedra de Pablo Cosso. Clase a cargo de Nicolás Bello Camilletti.
Mas información y código fuente: http://www.assembla.com/spaces/clase-groovy/
1. Seminario de Ing. en Informática
Cátedra: Pablo Cosso
Colaborador: Nicolás Bello Camilletti
2do cuatrimestre 2011
2. ¿Que es Groovy?
Lenguaje ágil y dinámico para la JVM
Basado en Python, Ruby, Perl y Smalltalk
Curva de aprendizaje casi nula
Facilita la escritura de scripts
Soporta Domain Specific Languages (DSL)
Integración con Java
3.
4. Historia
29/08/2003: post de James Strachan Nace Groovy.
16/03/2004: Propuesta JSR 241
29/03/2004: Se aprueba la JSR 241
02/01/2007: se lanza la versión 1.0
07/12/2007: versión 1.1 se renombra a 1.5
Actualmente -> 1.8.#
13. Groovy Truth
Boolean
Cosas que son false
Colecciones vacías(listas, maps)
Iteradores y enumeradores sin mas elementos
Strings vacios
Matchers de regex que no coinciden (=~)
Cero
null
26. GroovyBeans (2)
Con access modifier
Field
Sin access modifier
Field privado
Mas getter y setter públicos (una property). Se pueden sobreescribir
Property final
Field privado como final
Solo getter
36. Usar Groovy en:
Integración de componentes
Modelos de negocio muy dinámicos
Pruebas de concepto
Proyectos rápidos y chicos
Scripting
37. No usar Groovy en:
Algoritmos complejos
Cálculos intensivos
Manejo de grandes cantidades de datos
Problema con creación de objetos por ser dinámico
Sistemas con
Requerimientos bien definidos
Pocas posibilidades de evolución
Proyectos muy grandes
Notas do Editor
FilosofíaLenguaje ágil y dinámico para la Java Virtual MachinePuntos fuertes de Java pero con características adicionales inspiradas en lenguajes como Python, Ruby y SmalltalkCurva de aprendizaje casi nula para desarrolladores JavaCódigo fácil de leer y mantener.Facilita la escritura de scripts Reducción de código estructural en aplicaciones web, GUI, de bases de datos o de consolaSimplifica el testeoSe integra sin problemas a objetos Java y librerías existentes.Compila directamente a bytecode de la JVM.Groovy is licensed under the Apache 2 license:http://www.apache.org/licenses/LICENSE-2.0.html
29/08/2003: James Strachan hace un post en su blog dándole nacimiento a Groovy.16/03/2004: se propone al JCP, bajo la JSR 241 la especificación de Groovy dentro de la JVMJava Specification Request241: The Groovy Programming Language29/03/2004: se aprueba de forma unánime por todo el comité. La especificación se larga con una licencia estilo BSD / Apache02/01/2007: se lanza la versión 1.0 y durante este año Groovy gana el premio JAX al proyecto más innovador y creativo del año.
// Ahora vemos que cambiando la variable cambiamos el closure
An Expando is different from a map in that you can provide synthetic methods that you can call on the object.The player.greeting assignment passes in a closure to execute when greeting() is called on the Expando. Notice that the closure has access to the properties assigned to the Expando, even though these values may change over time, using Groovy's GString "$variableOrProperty" notation.
Builders are based on the builder pattern from the GOF design pattern book. It provides a way to build your own DSL and represents a powerful concept in Groovy