SlideShare a Scribd company logo
1 of 36
Taller de Groovy
6ta. Reunión de SpringHispano.org y Grails.org.mx
Fundamental progress has to do with
  the reinterpretation of basic ideas.

              -Alfred North Whitehead.
Formato del taller


• 20~40 minutos de “Teoría”
• El resto del tiempo... código y de vez en
  cuando algo de teoría :)
Agenda
• Lenguajes dinámicos
• Groovy
 • Historia
 • ¿Que es?
 • ¿Porque?
• Código
Lenguajes dinámicos
• Tienen la habilidad de extender un
  programa en tiempo de ejecución, eso
  incluye cambiar la estructura de objetos,
  tipos y comportamiento.
• Te permiten hacer cosas en tiempo de
  ejecución que los lenguajes estáticos te
  permiten en tiempo de compilación.
• Pueden ejecutar instrucciones que fueron
  creadas al vuelo en tiempo de ejecución.
¿Porque hay que
       considerarlos?
• Velocidad de las maquinas
• Disponibilidad
• Relevancia de las pruebas unitarias
• Killer applications
• La habilidad de la JVM de ejecutarlos
Historia
•   2003
    •   James Strachan, Bob McWhirter. Creadores.

        •   La culpa es de Bob...
    •   Richard Monson-Haefel, ayudo a crear el JSR-241.

•   2004

    •   Guillaume Laforge y Jeremy Rayner
        administran el trabajo.

    •   Russel Winder, Jochen Theodorou, Dierk
        Koenig, & Scott Stirling. Core developers
Historia

• 2007
 • Groovy 1.0 es liberado
• 2008
 • Se funda G2One, empresa
 • SpringSource compra G2One
¿Que es?
• Es un lenguaje dinámico, de baja ceremonia,
  orientado a objetos, que se ejecuta en una
  JVM
• Es también un lenguaje de script, pero no
  solo para scripting se usa, ya que se puede
  compilar a código de byte.
• Esta basado en el lenguaje Java
¿Por que Groovy?
Java como plataforma

• Zillions de librerías
• Zillions de herramientas
• Comunidad enorme
• Escalable
• La industria ha invertido muchisimo
Java
  Plataforma políglota
• Java
• Groovy
• Scala
• Erlang
• JRuby
• Jython
• JavaFX   © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
¿Por que Groovy?




      © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
¿Por que Groovy?

• Construido sobre la plataforma Java, en
  lugar de portar otra plataforma dentro de
  Java, lo que lleva a abstracciones débiles.
• Reuso de conocimiento adquirido
• Ayuda a que JSE y JEE sea mas sencillo

                 © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
HolaMundo en Java
public class HelloWorld {
  String name;

    public void setName(String name) { this.name = name; }

    public String getName(){ return name; }

    public String greet(){ return “Hello “ + name; }

    public static void main(String args[]){
       HelloWorld helloWorld = new HelloWorld()‫‏‬
       helloWorld.setName(“Groovy”)‫‏‬
       System.out.println( helloWorld.greet() )‫‏‬
    }
}


                          © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
HolaMundo en Groovy
public class HelloWorld {
  String name;

    public void setName(String name) { this.name = name; }

    public String getName(){ return name; }

    public String greet(){ return “Hello “ + name; }

    public static void main(String args[]){
       HelloWorld helloWorld = new HelloWorld()‫‏‬
       helloWorld.setName(“Groovy”)‫‏‬
       System.out.println( helloWorld.greet() )‫‏‬
    }
}


                          © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
Manera Groovy ;)

class HelloWorld {
  String name
  def greet() { quot;Hello $namequot; }
}


def helloWorld = new HelloWorld(name:quot;Groovyquot;)
println helloWorld.greet()




                       © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
Instalar Groovy
HolaMundo.groovy
Dynamic.groovy
Loops.groovy
MoreLoops.groovy
org.springhispano.Clase.groovy
Gui.groovy
Extensión del JDK
con Groovy-GDK
Dir.groovy
DirJava.groovy
Collections
Rangos.groovy
Listas.groovy
Mapas.groovy
Xml.groovy
SwingSimple.groovy
SwingMenu.groovy
¿Tiempo para algo mas?

More Related Content

Similar to Taller Groovy

Realizando pruebas en la JVM con velocidad y eficacia
Realizando pruebas en la JVM con velocidad y eficaciaRealizando pruebas en la JVM con velocidad y eficacia
Realizando pruebas en la JVM con velocidad y eficacia
Software Guru
 

Similar to Taller Groovy (20)

grails.org.mx Primera Reunion
grails.org.mx Primera Reuniongrails.org.mx Primera Reunion
grails.org.mx Primera Reunion
 
Intro a Grails @ ITESCA
Intro a Grails @ ITESCAIntro a Grails @ ITESCA
Intro a Grails @ ITESCA
 
Introducción a Groovy
Introducción a GroovyIntroducción a Groovy
Introducción a Groovy
 
Eleva tu capacidad con Groovy
Eleva tu capacidad con GroovyEleva tu capacidad con Groovy
Eleva tu capacidad con Groovy
 
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
 
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
 
Realizando pruebas en la JVM con velocidad y eficacia
Realizando pruebas en la JVM con velocidad y eficaciaRealizando pruebas en la JVM con velocidad y eficacia
Realizando pruebas en la JVM con velocidad y eficacia
 
Introducción a Groovy
Introducción a GroovyIntroducción a Groovy
Introducción a Groovy
 
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicaciones
 
Grails en el Fonasol
Grails en el FonasolGrails en el Fonasol
Grails en el Fonasol
 
Introduction a Groovy
Introduction a  GroovyIntroduction a  Groovy
Introduction a Groovy
 
Grails en SG08
Grails en SG08Grails en SG08
Grails en SG08
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicaciones
 
Seminario de Groovy y grails
Seminario de Groovy y grailsSeminario de Groovy y grails
Seminario de Groovy y grails
 
Realizando Pruebas en la JVM con Velocidad y Eficacia
Realizando Pruebas en la JVM con Velocidad y EficaciaRealizando Pruebas en la JVM con Velocidad y Eficacia
Realizando Pruebas en la JVM con Velocidad y Eficacia
 
Introduccion A Groovy
Introduccion A GroovyIntroduccion A Groovy
Introduccion A Groovy
 
Grails en Expo FISI 2011
Grails en Expo FISI 2011Grails en Expo FISI 2011
Grails en Expo FISI 2011
 
JRuby al Rescate de J2EE
JRuby al Rescate de J2EEJRuby al Rescate de J2EE
JRuby al Rescate de J2EE
 
HackDay Java 9 Spanish version
HackDay Java 9 Spanish versionHackDay Java 9 Spanish version
HackDay Java 9 Spanish version
 

More from Domingo Suarez Torres

More from Domingo Suarez Torres (20)

Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesCloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
 
Java Dev Day 2019 No kuberneteen por convivir
Java Dev Day 2019  No kuberneteen por convivirJava Dev Day 2019  No kuberneteen por convivir
Java Dev Day 2019 No kuberneteen por convivir
 
Contenedores 101 Digital Ocean CDMX
Contenedores 101 Digital Ocean CDMXContenedores 101 Digital Ocean CDMX
Contenedores 101 Digital Ocean CDMX
 
Retos en la arquitectura de Microservicios
Retos en la arquitectura de MicroserviciosRetos en la arquitectura de Microservicios
Retos en la arquitectura de Microservicios
 
Java Cloud Native Hack Nights GDL
Java Cloud Native Hack Nights GDLJava Cloud Native Hack Nights GDL
Java Cloud Native Hack Nights GDL
 
meetup digital ocean kubernetes
meetup digital ocean kubernetesmeetup digital ocean kubernetes
meetup digital ocean kubernetes
 
Peru JUG Micronaut & GraalVM
Peru JUG Micronaut & GraalVMPeru JUG Micronaut & GraalVM
Peru JUG Micronaut & GraalVM
 
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con IstioDevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
 
Cloud Native Development in the JVM
Cloud Native Development in the JVMCloud Native Development in the JVM
Cloud Native Development in the JVM
 
Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a Kubernetes
 
Meetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architectureMeetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architecture
 
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y EnvoyCloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
 
Cloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 ObservabilityCloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 Observability
 
Cloud Native Mexico Presentacion
Cloud Native Mexico PresentacionCloud Native Mexico Presentacion
Cloud Native Mexico Presentacion
 
gRPC: Beyond REST
gRPC: Beyond RESTgRPC: Beyond REST
gRPC: Beyond REST
 
Devops Landscape
Devops LandscapeDevops Landscape
Devops Landscape
 
Orquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextOrquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNext
 
JVM Reactive Programming
JVM Reactive ProgrammingJVM Reactive Programming
JVM Reactive Programming
 
SOA Latam 2015
SOA Latam 2015SOA Latam 2015
SOA Latam 2015
 
SGCE 2015 REST APIs
SGCE 2015 REST APIsSGCE 2015 REST APIs
SGCE 2015 REST APIs
 

Recently uploaded

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Recently uploaded (15)

presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Taller Groovy

  • 1. Taller de Groovy 6ta. Reunión de SpringHispano.org y Grails.org.mx
  • 2. Fundamental progress has to do with the reinterpretation of basic ideas. -Alfred North Whitehead.
  • 3. Formato del taller • 20~40 minutos de “Teoría” • El resto del tiempo... código y de vez en cuando algo de teoría :)
  • 4. Agenda • Lenguajes dinámicos • Groovy • Historia • ¿Que es? • ¿Porque? • Código
  • 5. Lenguajes dinámicos • Tienen la habilidad de extender un programa en tiempo de ejecución, eso incluye cambiar la estructura de objetos, tipos y comportamiento. • Te permiten hacer cosas en tiempo de ejecución que los lenguajes estáticos te permiten en tiempo de compilación. • Pueden ejecutar instrucciones que fueron creadas al vuelo en tiempo de ejecución.
  • 6. ¿Porque hay que considerarlos? • Velocidad de las maquinas • Disponibilidad • Relevancia de las pruebas unitarias • Killer applications • La habilidad de la JVM de ejecutarlos
  • 7.
  • 8. Historia • 2003 • James Strachan, Bob McWhirter. Creadores. • La culpa es de Bob... • Richard Monson-Haefel, ayudo a crear el JSR-241. • 2004 • Guillaume Laforge y Jeremy Rayner administran el trabajo. • Russel Winder, Jochen Theodorou, Dierk Koenig, & Scott Stirling. Core developers
  • 9. Historia • 2007 • Groovy 1.0 es liberado • 2008 • Se funda G2One, empresa • SpringSource compra G2One
  • 10. ¿Que es? • Es un lenguaje dinámico, de baja ceremonia, orientado a objetos, que se ejecuta en una JVM • Es también un lenguaje de script, pero no solo para scripting se usa, ya que se puede compilar a código de byte. • Esta basado en el lenguaje Java
  • 12. Java como plataforma • Zillions de librerías • Zillions de herramientas • Comunidad enorme • Escalable • La industria ha invertido muchisimo
  • 13. Java Plataforma políglota • Java • Groovy • Scala • Erlang • JRuby • Jython • JavaFX © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 14. ¿Por que Groovy? © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 15. ¿Por que Groovy? • Construido sobre la plataforma Java, en lugar de portar otra plataforma dentro de Java, lo que lleva a abstracciones débiles. • Reuso de conocimiento adquirido • Ayuda a que JSE y JEE sea mas sencillo © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 16. HolaMundo en Java public class HelloWorld { String name; public void setName(String name) { this.name = name; } public String getName(){ return name; } public String greet(){ return “Hello “ + name; } public static void main(String args[]){ HelloWorld helloWorld = new HelloWorld()‫‏‬ helloWorld.setName(“Groovy”)‫‏‬ System.out.println( helloWorld.greet() )‫‏‬ } } © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 17. HolaMundo en Groovy public class HelloWorld { String name; public void setName(String name) { this.name = name; } public String getName(){ return name; } public String greet(){ return “Hello “ + name; } public static void main(String args[]){ HelloWorld helloWorld = new HelloWorld()‫‏‬ helloWorld.setName(“Groovy”)‫‏‬ System.out.println( helloWorld.greet() )‫‏‬ } } © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 18. Manera Groovy ;) class HelloWorld { String name def greet() { quot;Hello $namequot; } } def helloWorld = new HelloWorld(name:quot;Groovyquot;) println helloWorld.greet() © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 19.

Editor's Notes