43
Groovy Grails ´11 Donostia - San Sebastián, 27/09/11 Rubén Egiluz Hacia Una JVM políglota

Introducción a groovy

Embed Size (px)

DESCRIPTION

Introduction to groovy, an agile and dynamic language for the java virtual machine

Citation preview

Page 1: Introducción a groovy

Groovy

Grails ´11Donostia - San Sebastián,

27/09/11

Rubén Egiluz

Hacia Una JVM políglota

Page 2: Introducción a groovy
Page 3: Introducción a groovy

Follow me! @regiluze

Ingeniero informáticoen Donewtech

Apprentice Software Craftsmanship

Desarrollador de Java desde hace 7 años

Colaborador en Agile Norte

Colaborador en la asociacion JavaHispano

Rubén Egiluz

Page 4: Introducción a groovy

agenda

Qué es Java

1

Qué es Groovy

2

Mi casa es tu casa

3

Viajando de .java a .groovy

4

Groovy en profundidad

5

Groovy Tools

6

Casos de éxito

7

Dudas y aclaraciones

8

Page 5: Introducción a groovy

arrancamos conGroovy!

Page 6: Introducción a groovy

¿Qué es java? 1

Page 7: Introducción a groovy

Una plataforma

no un lenguaje…

Page 8: Introducción a groovy

Java programming

language: sintaxis, etc.

Java Platform: Máquina virtual, formato bytecode, etc.

no un lenguaje…

Una plataforma

Page 9: Introducción a groovy

JSR 901: Java Language Spec. (1996) 

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)

¿Varios lengüajes?

Page 10: Introducción a groovy

¿Qué es groovy? 2

Page 11: Introducción a 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

Page 12: Introducción a groovy

Mi casa es tu casa

3

Page 13: Introducción a groovy

Interacción con lenguaje java transparente

TODO código groovy se ejecuta dentro de JVM

Page 14: Introducción a groovy

Dos maneras de ejecutar classes groovy en la JVM

Page 15: Introducción a groovy

¿Es un lenguaje interpretado?

Page 16: Introducción a groovy

Viajando de .java a .groovy

4

Page 17: Introducción a groovy

Viajando de .java a .groovy

Page 18: Introducción a groovy

Viajando de .java a .groovy

Se elimina lo obvio

Page 19: Introducción a groovy

Viajando de .java a .groovy

Se elimina lo ceremonioso

Page 20: Introducción a groovy

Viajando de .java a .groovy

Tipos dinámicos

Page 21: Introducción a groovy

Viajando de .java a .groovy

Interpolación de variables

Page 22: Introducción a groovy

Viajando de .javaa .groovy

POJOS supervitaminados

Page 23: Introducción a groovy

Viajando de .java a .groovy

Scripts

Page 24: Introducción a groovy

Viajando de .java a .groovy

Page 25: Introducción a groovy

Viajando de .java a .groovy

Page 26: Introducción a groovy

Groovy en profundidad

5

Page 27: Introducción a groovy

Groovy en profundidad

Closures

Page 28: Introducción a groovy

Groovy en profundidad

Meta-programación (Meta-Object Protocol MOP)

Page 29: Introducción a groovy

Groovy en profundidad

GDK versión "tuneada" del JDK

Page 30: Introducción a groovy

Groovy en profundidad

Transformaciones AST

Page 31: Introducción a groovy

Groovy en profundidad

DSL (Domain-Specific Language)

Page 32: Introducción a groovy

Groovy en profundidad

Builders

Page 33: Introducción a groovy

Groovy en profundidad

Sobrecarga de operadores

Page 34: Introducción a groovy

Gpars

GStrings

Regex

Ranges

Memorize

Page 35: Introducción a groovy

Groovy Tools 6

Page 36: Introducción a groovy

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

Groovy Tools

Page 37: Introducción a groovy

Casos de éxito 7

Page 38: Introducción a groovy

Ayuntamiento de Vitoria: @grailsteiz

Escuela de groovy

Atlassian

EventBis / TicketBis

Linkedin

Sky.com

Casos de éxito

Page 39: Introducción a groovy

Powered by

Page 40: Introducción a groovy

Dudas y aclaraciones

Page 41: Introducción a groovy

http://www.donewtech.com/http://agilemanifesto.org/iso/es/http://manifesto.softwarecraftsmanship.org/http://www.javahispano.org/http://norte.agile-spain.org/http://agile-spain.org/http://www.is-research.de/info/vmlanguages/category/jvm-language/http://www.jcp.org/en/jsr/detail?id=901http://www.jcp.org/en/jsr/detail?id=241http://www.jcp.org/en/jsr/detail?id=274http://www.jcp.org/en/jsr/detail?id=223http://jcp.org/en/jsr/detail?id=292http://www.flickr.com/photos/14358247@N05/3182971707/http://www.slideshare.net/aalmiray/introduccion-a-groovyhttp://www.slideshare.net/linkedin/grails-at-linked?src=embed

Referenciashttp://groovy.codehaus.org/http://www.manning.com/koenig/http://grails.org/http://docs.codehaus.org/display/GROOVY/Griffonhttp://gaelyk.appspot.com/http://gant.codehaus.org/http://codenarc.sourceforge.net/http://code.google.com/p/spock/http://code.google.com/p/gmock/http://www.easyb.org/http://twitter.com/#!/springrod/status/2035497810http://www.sky.com/http://www.eventbis.com/es_ES/index.htmhttp://www.ticketbis.com/http://grails.org/Testimonialshttp://www.grails.org/Success+Stories

Page 42: Introducción a groovy

¡Gracias!Eskerrik asko!

Thanks! Merci!

Danke!¡Grácies!

!شكرا 謝謝!Grazie!

ευχαριστώ!

Obrigado!ありがとう!

Page 43: Introducción a groovy