Características
•Es un DSL
•Genera código Java, no
bytecode
•Es 100% compatible con Java
•Usa todo el sistema de tipos
de Java
•Interoperable
•Programación Funcional
•Creación de DSLs
Slide 8
Slide 8 text
Desarrollo
ClaseA.xtend
ClaseA.java ClaseB.java
Generación de código
Compilación
ClaseA.class ClaseB.class
App.war
Empaquetado
XTend
Runtime
(100KBs)
Slide 9
Slide 9 text
¿Por qué lo usaría?
•Scala es muy complejo y curva de
aprendizaje elevada
•Por las closures, no puedo
esperar a la JDK8
•Excelente soporte del IDE
•Mi plataforma destino tiene
recursos limitados
Slide 10
Slide 10 text
Hola Mundo
Slide 11
Slide 11 text
Una clase
Privado por defecto
Constructor
Declaración de método
Todo son expresiones
Herencia simple
Público
por defecto
; opcional
Slide 12
Slide 12 text
Atributos
Privado por defecto
Tipo String inferido
int inferido
variable final
Slide 13
Slide 13 text
Extension methods I
Slide 14
Slide 14 text
Extension methods II
Slide 15
Slide 15 text
Extension Fields
Slide 16
Slide 16 text
@Property
Slide 17
Slide 17 text
Lambdas
X
X
Slide 18
Slide 18 text
Funciones Primera Clase
Cachis! f(value)
Slide 19
Slide 19 text
Un poco más sencillo
Cachis! f(value)
Slide 20
Slide 20 text
Un poco más funcional!
Slide 21
Slide 21 text
Funciones parciales
Slide 22
Slide 22 text
Test de aceptación
Slide 23
Slide 23 text
Gracias!
• XTend
• Documentación
• Google Group
• JNairo
• 20 Facts about Xtend
• http://c.funius.com/xtend