SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
Groovy
Hacia
Una JVM
políglota
                            Grails ´11
            Donostia - San Sebastián,
                             27/09/11
                          Rubén Egiluz
Rubén
Egiluz               Colaborador
                     en la
                     asociacion
                     JavaHispano



               Apprentice
               Software
               Craftsmanship
Ingeniero
informático
en Donewtech
                               Colaborador
                               en Agile
                               Norte
         Desarrollador
         de Java desde
         hace 7 años
                                             Follow me!
                                              @regiluze
a
gen
       1                 5
      Qué es            Groovy en
      Java              profundidad

 da    2                 6
      Qué es            Groovy
      Groovy            Tools

      3                  7
      Mi casa           Casos
      es tu casa        de éxito

        4                8
      Viajando de       Dudas y
      .java a .groovy   aclaraciones
arrancamos
con
Groovy!
¿Qué       1
es java?
Una
plataforma
  no un lenguaje…
Una
plataforma
        no un lenguaje…



Java Platform:                      Java
Máquina                   programming
virtual,                      language:
formato                    sintaxis, etc.
bytecode, etc.
¿Varios
JSR 901:
Java Language Spec. (1996) 
                                          lengüajes?
JSR 241:
The Groovy Programing Languaje (2004) 

JSR 274:
The BeanShell Scripting Language (2005)

JSR 223:
Scripting for the Java Platform (2006) 

JSR 292:
Supporting Dynamically typed Languages on the
Java Platform (2011)
¿Qué es   2
groovy?
"An agile and dynamic language for the java Virtual
Machine"

Conceptos base de lenguaje java con inspiraciones de
Ruby, Python y smalltalk

Totalmente orientado a objeto, pure OOP

Scripting

Permite dynamic typing y opcionalmente static typing

Integración completa con Java
Mi casa   3
es tu
casa
Interacción con lenguaje java transparente

TODO código groovy se ejecuta dentro de JVM
Dos
maneras de
ejecutar
classes
groovy en la
JVM
¿Es un
lenguaje
interpretado?
Viajando   4
de .java
a
.groovy
Viajando
de .java
a
.groovy
Viajando
de .java
a
.groovy
Se
elimina lo
obvio
Viajando
de .java
a .groovy
Se elimina lo
ceremonioso
Viajando
de .java
a .groovy
Tipos
dinámicos
Viajando
de .java
a .groovy
Interpolación
de variables
Viajando
de .java
a .groovy
POJOS
supervitaminados
Viajando
de .java
a .groovy
Scripts
Viajando
de .java
a .groovy
Viajando
de .java
a .groovy
Groovy
en            5
profundidad
Groovy en
profundidad
Closures
Groovy en
profundidad
Meta-
programación
(Meta-Object
Protocol MOP)
Groovy en
profundidad
GDK versión
"tuneada" del
JDK
Groovy en
profundidad
Transformaciones
AST
Groovy en
profundidad
DSL (Domain-
Specific
Language)
Groovy en
profundidad
Builders
Groovy en
profundidad
Sobrecarga
de
operadores
Memorize




Ranges

                     Regex

Gpars

         GStrings
Groovy
Tools    6
Groovy
Tools
IDE: plugins en Netbeans, eclipse o Spring Source
Tool e IntellijIDEA  

Construcción: Gant, Gradle

Frameworks: Grails, Griffon, Gaelyk

Testing: GroUnit, Spock, EasyB, Gmock, CodeNarc
Casos
de éxito   7
Casos
de éxito
Ayuntamiento de Vitoria: @grailsteiz
Escuela de groovy
Atlassian
EventBis / TicketBis
Linkedin
Sky.com
Powered
by
Dudas y
aclaraciones
Referencias
                                                                    http://groovy.codehaus.org/
http://www.donewtech.com/
                                                                    http://www.manning.com/koenig/
http://agilemanifesto.org/iso/es/
                                                                    http://grails.org/
http://manifesto.softwarecraftsmanship.org/
                                                                    http://docs.codehaus.org/display/GROOVY/Griffon
http://www.javahispano.org/
                                                                    http://gaelyk.appspot.com/
http://norte.agile-spain.org/
                                                                    http://gant.codehaus.org/
http://agile-spain.org/
                                                                    http://codenarc.sourceforge.net/
http://www.is-research.de/info/vmlanguages/category/jvm-language/
                                                                    http://code.google.com/p/spock/
http://www.jcp.org/en/jsr/detail?id=901
                                                                    http://code.google.com/p/gmock/
http://www.jcp.org/en/jsr/detail?id=241
                                                                    http://www.easyb.org/
http://www.jcp.org/en/jsr/detail?id=274
                                                                    http://twitter.com/#!/springrod/status/2035497810
http://www.jcp.org/en/jsr/detail?id=223
                                                                    http://www.sky.com/
http://jcp.org/en/jsr/detail?id=292
                                                                    http://www.eventbis.com/es_ES/index.htm
http://www.flickr.com/photos/14358247@N05/3182971707/
                                                                    http://www.ticketbis.com/
http://www.slideshare.net/aalmiray/introduccion-a-groovy
                                                                    http://grails.org/Testimonials
http://www.slideshare.net/linkedin/grails-at-linked?src=embed
                                                                    http://www.grails.org/Success+Stories
Eskerrik asko!
 ¡Gracias!
Thanks!    Merci!
  ‫!شكرا‬      謝謝!
Danke! Grazie!
¡Grácies! ευχαριστώ!
   ありがとう!
          Obrigado!
Introducción a groovy

Más contenido relacionado

Similar a Introducción a groovy

Webinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaWebinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaDomingo Suarez Torres
 
Groovy AST Demystified
Groovy AST DemystifiedGroovy AST Demystified
Groovy AST DemystifiedAndres Almiray
 
Groovy y Grails, y la pastilla roja
Groovy y Grails, y la pastilla rojaGroovy y Grails, y la pastilla roja
Groovy y Grails, y la pastilla rojaEscuela de Groovy
 
Swift sin hype y su importancia en el 2017
 Swift sin hype y su importancia en el 2017  Swift sin hype y su importancia en el 2017
Swift sin hype y su importancia en el 2017 Software Guru
 
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!Iván López Martín
 
Groovy Koans - SpringIO 2011
Groovy Koans - SpringIO 2011Groovy Koans - SpringIO 2011
Groovy Koans - SpringIO 2011Dani Latorre
 
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!Iván López Martín
 
GHOP - GSoC Campus Party 2008
GHOP - GSoC Campus Party 2008GHOP - GSoC Campus Party 2008
GHOP - GSoC Campus Party 2008Dani Latorre
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plonementtes
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaDani Latorre
 
Revista Rails Girls Venezuela Mayo 2018
Revista Rails  Girls Venezuela Mayo  2018Revista Rails  Girls Venezuela Mayo  2018
Revista Rails Girls Venezuela Mayo 2018kyaalena
 
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...Iván López Martín
 
HTML5, CSS3 y móviles
HTML5, CSS3 y móvilesHTML5, CSS3 y móviles
HTML5, CSS3 y móvilesPideCurso
 

Similar a Introducción a groovy (20)

Eleva tu capacidad con Groovy
Eleva tu capacidad con GroovyEleva tu capacidad con Groovy
Eleva tu capacidad con Groovy
 
Webinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaWebinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador Java
 
Groovy AST Demystified
Groovy AST DemystifiedGroovy AST Demystified
Groovy AST Demystified
 
Introduccion a Groovy
Introduccion a GroovyIntroduccion a Groovy
Introduccion a Groovy
 
Groovy y Grails, y la pastilla roja
Groovy y Grails, y la pastilla rojaGroovy y Grails, y la pastilla roja
Groovy y Grails, y la pastilla roja
 
Grails en el Fonasol
Grails en el FonasolGrails en el Fonasol
Grails en el Fonasol
 
Swift sin hype y su importancia en el 2017
 Swift sin hype y su importancia en el 2017  Swift sin hype y su importancia en el 2017
Swift sin hype y su importancia en el 2017
 
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!
 
Groovy Koans - SpringIO 2011
Groovy Koans - SpringIO 2011Groovy Koans - SpringIO 2011
Groovy Koans - SpringIO 2011
 
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!
 
GHOP - GSoC Campus Party 2008
GHOP - GSoC Campus Party 2008GHOP - GSoC Campus Party 2008
GHOP - GSoC Campus Party 2008
 
Grails en SG08
Grails en SG08Grails en SG08
Grails en SG08
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web Java
 
Revista Rails Girls Venezuela Mayo 2018
Revista Rails  Girls Venezuela Mayo  2018Revista Rails  Girls Venezuela Mayo  2018
Revista Rails Girls Venezuela Mayo 2018
 
grails.org.mx Primera Reunion
grails.org.mx Primera Reuniongrails.org.mx Primera Reunion
grails.org.mx Primera Reunion
 
Sobre GrooScript
Sobre GrooScriptSobre GrooScript
Sobre GrooScript
 
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
 
HTML5, CSS3 y móviles
HTML5, CSS3 y móvilesHTML5, CSS3 y móviles
HTML5, CSS3 y móviles
 
El mundo se acaba en 2012
El mundo se acaba en 2012El mundo se acaba en 2012
El mundo se acaba en 2012
 

Último

Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfYanitza28
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaJadeVilcscordova
 
NIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptx
NIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptxNIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptx
NIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptxDaniloDaz4
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaRicardoEstrada90
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptxdulcemonterroza
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx221112876
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfaxelv9257
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfJosAndrRosarioVzquez
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónUniversidad de Sonora
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8antoniopalmieriluna
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...axelv9257
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosYOMIRAVILLARREAL1
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxcj12paz
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte2024020140
 
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdfjuan23xpx
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionEmanuelMuoz11
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024NicolleAndrade7
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaEdwinGarca59
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxJOELGARCIA849853
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxgustavovasquezv56
 

Último (20)

Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
NIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptx
NIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptxNIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptx
NIA_300_PLANEACION_DE_UNA_AUDITORIA_DE_E.pptx
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptx
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte
 
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 

Introducción a groovy