Groovy: el lenguaje dinámico
         para la JVM

 José Juan R.
    Zuñiga
(@neodevelop)


                     @grailsmx
Agenda
• Introducción abierta(Open Source y lenguajes de
  desarrollo)
• ¿Que es groovy?
• Hola Mundo en Groovy
• Azúcar S...
Introducción
Groovy
HolaMundo en Java
public class HolaMundo {

   private String nombre;

   public String getNombre() {

   
    return nomb...
HolaMundo en Groovy
public class HolaMundo {

   private String nombre;

   public String getNombre() {

   
    return no...
Mejor a la manera Groovy


class HolaMundo {

 String nombre

 def saluda() { "Hola ${this.nombre} !!!" }

}

def objeto =...
¿Cómo llegamos a esto…?
• Tener el JDK instalado
• Establecer la variable JAVA_HOME y agregarla al
  PATH en el subdirecto...
+ Groovy en una mirada
•   Totalmente Orientado a objetos
•   Perfecta integración con Java
•   Closures
•   Convención de...
Azúcar sintáctica + GDK
• Listas
  – def numeros = [1,2,3,4,5]
• Mapas
  – def mapa = [DF:'Distrito
    Federal',MTY:'Mont...
Groovy en profundidad
• Meta-programación
  – La habilidad de un lenguaje para modificarse a sí mismo
• Transformaciones AS...
Aplicaciones Desktop
Let’s code again!!!
Base de Datos
Metaprogramación
Testing
¿Quieres ser Groovy?
Aun hay algo más…




              @grailsmx
Esperen…




           @grailsmx
Agradecimiento
• GULEV
• @springhispano
• @grailsmx
¿Preguntas?

…o comentarios…
springhispano.org
  grails.org.mx
  @neodevelop

                                  @grailsmx
Upcoming SlideShare
Loading in...5
×

Introducción a Groovy

1,857

Published on

Presentación para el #Gulev2KX en Veracruz

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,857
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
38
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introducción a Groovy

  1. 1. Groovy: el lenguaje dinámico para la JVM José Juan R. Zuñiga (@neodevelop) @grailsmx
  2. 2. Agenda • Introducción abierta(Open Source y lenguajes de desarrollo) • ¿Que es groovy? • Hola Mundo en Groovy • Azúcar Sintáctica • +Groovy en una mirada • Aplicaciones Desktop con Groovy • Acceso a base de datos con Groovy • Metaprogramación • Testing
  3. 3. Introducción
  4. 4. Groovy
  5. 5. HolaMundo en Java public class HolaMundo { private String nombre; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String saluda() { return "Hola " + this.nombre + " !!!"; } public static void main(String[] args) { HolaMundo objeto = new HolaMundo(); objeto.setNombre("@grailsmx"); System.out.println(objeto.saluda()); } }
  6. 6. HolaMundo en Groovy public class HolaMundo { private String nombre; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String saluda() { return "Hola " + this.nombre + " !!!"; } public static void main(String[] args) { HolaMundo objeto = new HolaMundo(); objeto.setNombre("@grailsmx"); System.out.println(objeto.saluda()); } }
  7. 7. Mejor a la manera Groovy class HolaMundo { String nombre def saluda() { "Hola ${this.nombre} !!!" } } def objeto = new HolaMundo(nombre:"@grailsmx") println(objeto.saluda())
  8. 8. ¿Cómo llegamos a esto…? • Tener el JDK instalado • Establecer la variable JAVA_HOME y agregarla al PATH en el subdirectorio /bin • Descargamos la distribución de Groovy en http:// groovy.codehaus.org/ • Creamos una variable de entorno GROOVY_HOME apuntando al directorio donde se descomprimió la distribución • Adicionalmente, incluir en el PATH el directorio / bin de la variable de entorno GROOVY_HOME, es decir: %GROOVY_HOME%/bin • Let’s rock the code!!!
  9. 9. + Groovy en una mirada • Totalmente Orientado a objetos • Perfecta integración con Java • Closures • Convención de JavaBeans • Esencia vs. Ceremonia • Aritmética con BigDecimal por default para la operación de punto flotante • API’s amigables y prácticas • XML, JDBC, JMX, Swing • DSL(Domain Specific Language) • Builders • Sobrecarga de operadores • GDK
  10. 10. Azúcar sintáctica + GDK • Listas – def numeros = [1,2,3,4,5] • Mapas – def mapa = [DF:'Distrito Federal',MTY:'Monterrey'] • Rangos – def rangos = 199..299 • Asignación Múltiple – def (a,b) = [10,20] • Return Opcional – def metodo(bool) { if(bool) 1 else 0 }
  11. 11. Groovy en profundidad • Meta-programación – La habilidad de un lenguaje para modificarse a sí mismo • Transformaciones AST – @Singleton – @Inmutable, @Lazy, @Delegate – @Newify – @Category & @Mixin – @PackageScope – @Bindable & @Vetoable – @Grab
  12. 12. Aplicaciones Desktop
  13. 13. Let’s code again!!!
  14. 14. Base de Datos
  15. 15. Metaprogramación
  16. 16. Testing
  17. 17. ¿Quieres ser Groovy?
  18. 18. Aun hay algo más… @grailsmx
  19. 19. Esperen… @grailsmx
  20. 20. Agradecimiento • GULEV • @springhispano • @grailsmx
  21. 21. ¿Preguntas? …o comentarios… springhispano.org grails.org.mx @neodevelop @grailsmx
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×