SlideShare una empresa de Scribd logo
1 de 33
Desarrollo políglota en la
plataforma Java
Opciones para elegir
Twitter

 Si usan Twitter pueden encontrarme en
   @domix
 Comenten sobre mi charla con el hashtag
   #javaGulev2KX
   #Gulev2KX
Sobre mí

Ingeniero de software desde 1999, experiencia en Java
He fundado algunos grupos de usuarios
  JavaUp.org, SpringHispano.org, grails.org.mx
Colaboro en algunos proyectos OpenSource
Trabajo en @SynergyJ
Empece a usar Groovy en 2007 y Scala en 2008
Agenda

Plataforma Java
Soporte a múltiples lenguajes
  Jython

  JRuby

  Scala

  Groovy

Frameworks y herramientas
La Plataforma Java

Una de las mas usadas en aplicaciones empresariales
Mucha inversión por varias empresas de tecnología
Ha demostrado su estabilidad y madurez durante
varios años
Utiliza el lenguaje más usado: Java
Plataforma != Lenguaje
Plataforma -> JVM
Lenguaje -> SDK
Lenguaje Java

Muy ceremonioso
Criticado por hacer difícil lo sencillo
Se usa el compilador para ayudar al desarrollador
Zillions de lineas de código escritas en Java
Librerías prácticamente para todo
¿Solo se puede
usar el lenguaje Java?
Podemos usar 300 lenguajes

http://www.is-research.de/info/vmlanguages/300/
¿Porque usar otros lenguajes?
Lenguajes

Cada lenguaje tiene semántica y estructuras propias
Cada uno fue diseñado con ciertos objetivos
Podemos usar un lenguaje de propósito general, pero
es casi seguro que tengamos que escribir mucho
código
Al ofrecer opciones, el desarrollador elige la mas
adecuada para el
¿El futuro de Java?


 Radica en la JVM
 Y en su capacidad de ejecutar diversos lenguajes
Incorporación a la JVM


Lenguajes adaptados, “hacking” para que funcione
Lenguajes diseñados desde el principio con la JVM en
mete
¿Como elegir el lenguaje?
Facilidad de uso, experiencia
Lenguajes mas comunes
Python

Gran lenguaje
Sintaxis hermosa
Una gran comunidad detrás
Muchas librerías escritas en el
Lenguaje interpretado
Jython

Nace a finales de 1997
Python en Java
Idéntico a Python 2.2
Al igual que Python, Jython es dinámico
Se han tenido que hacer muchas adecuaciones para
que funcione mas o menos bien en la JVM
Ejemplo en Jython
from java.math import BigDecimal

# Creamos una instancia de BigDecimal
Numero = BigDecimal(0)

# A la variable "b" se suma 6
b = Numero.add(BigDecimal(6))

print b
Ejecución de Jython


java -jar jython.jar script.py
Usos de Jython

WebLogic Server Application Server's wlst tool
scripting using Jython
IBM WebSphere Application Server's wsadmin tool
scripting using Jython
ZK is a Java Ajax framework that allows glue logic
written in Jython.
Ruby
Lenguaje de propósito general, dinámico, orientado a
objetos
Es funcional, orientado a objetos, imperativo y reflectivo
Tipado dinámico
Es (era) el lenguaje que iba a matar a Java
Charles Nutter ha dicho que el futuro de Ruby esta en
JRuby
JRuby
Empieza su desarrollo en 2001
En 2006 Sun contrato a desarrolladores dedicados a
poder Ruby y Rails en la JVM
Actualmente el desarrollo lo lleva Engine Yard
Compatible con Ruby 1.8.7
Puede correr de manera interpretada, JIT o AOT
(Ahead of time)
Se han tenido que hacer “arreglos”
Ejemplo en JRuby
include Java

frame = javax.swing.JFrame.new()
frame.getContentPane().add(javax.swing.JLabel.new('Hello, World!'))
frame.setDefaultCloseOperation(javax.swing.JFrame::EXIT_ON_CLOSE)
frame.pack()
frame.set_visible(true)




 require 'java'
 java_import java.lang.System
 version = System.getProperties["java.runtime.version"]
Scala
Empieza su desarrollo en 2001
Es orientado a objetos y funcional
Scala significa “Scalable Language”
El compilador de Scala genera byte code
Diseñado para vivir en la JVM y en otros entornos
como .NET
Pensado para concurrencia y para soportar ‘Actores’
Ejemplo en Scala
object HelloWorld extends Application {
  println("Hello, world!")
}



scalac HelloWorld.scala


scala -classpath . HelloWorld
Alrededor de Scala

Lift, framework de web con
características muy impresionantes
como el inverse Ajax.
Akka es una plataforma para
construir aplicaciones orientadas a
eventos, escalables y tolerantes a
fallos
Groovy
Empieza su desarrollo en 2003
Es un lenguaje orientado a objetos, dinamico
Diseñado para “robarse” cosas buenas de Python,
Ruby
Enorme comunidad
Muchisimos proyecto alrededor de Groovy
Mucho soporte de herramientas, Eclipse, NetBeans
Ejemplo en Groovy


  println "Hola Mundo"
Herramientas sobre Groovy
Testing
  Spock
  GMock
Construcción
  Gant
  Gradle
Frameworks
  Griffon - Swing
  Gaelyk - Web
  Grails - Web
Demo de Grails
Gracias
domingo.suarez@synergyj.com
Twitter: @domix

Más contenido relacionado

La actualidad más candente

Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragado
Maria
 
Java script(1)
Java script(1)Java script(1)
Java script(1)
mat3matik
 
Java script(1)
Java script(1)Java script(1)
Java script(1)
trazco
 

La actualidad más candente (19)

Zinjai
ZinjaiZinjai
Zinjai
 
Intro a Grails @ ITESCA
Intro a Grails @ ITESCAIntro a Grails @ ITESCA
Intro a Grails @ ITESCA
 
JAVA
JAVAJAVA
JAVA
 
Grails en el Fonasol
Grails en el FonasolGrails en el Fonasol
Grails en el Fonasol
 
grails.org.mx Primera Reunion
grails.org.mx Primera Reuniongrails.org.mx Primera Reunion
grails.org.mx Primera Reunion
 
Introducción a la programación para joomla
Introducción a la programación para joomlaIntroducción a la programación para joomla
Introducción a la programación para joomla
 
Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragado
 
Java script(1)
Java script(1)Java script(1)
Java script(1)
 
Taller de laravel
Taller de laravelTaller de laravel
Taller de laravel
 
Introducción a los Frameworks PHP
Introducción a los Frameworks PHP  Introducción a los Frameworks PHP
Introducción a los Frameworks PHP
 
Java script(1)
Java script(1)Java script(1)
Java script(1)
 
Node para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoNode para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigo
 
Grails en SG08
Grails en SG08Grails en SG08
Grails en SG08
 
Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!
 
Primeros pasos con java 9
Primeros pasos con java 9Primeros pasos con java 9
Primeros pasos con java 9
 
Características Java
Características JavaCaracterísticas Java
Características Java
 
Prototipos Rapidos En Ruby + JRuby
Prototipos Rapidos En Ruby + JRubyPrototipos Rapidos En Ruby + JRuby
Prototipos Rapidos En Ruby + JRuby
 
Proyecto Hola Mundo java.Programación.
Proyecto Hola Mundo java.Programación.Proyecto Hola Mundo java.Programación.
Proyecto Hola Mundo java.Programación.
 
Introducción a CoffeeScript
Introducción a CoffeeScriptIntroducción a CoffeeScript
Introducción a CoffeeScript
 

Destacado

Destacado (8)

Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3
 
Introducción a Groovy
Introducción a GroovyIntroducción a Groovy
Introducción a Groovy
 
Redefiniendo el MVC con Grails
Redefiniendo el MVC con GrailsRedefiniendo el MVC con Grails
Redefiniendo el MVC con Grails
 
15a. Reunion de SpringHispano.org y grails.org.mx
15a. Reunion de SpringHispano.org y grails.org.mx15a. Reunion de SpringHispano.org y grails.org.mx
15a. Reunion de SpringHispano.org y grails.org.mx
 
Developing Applications in XWiki
Developing Applications in XWikiDeveloping Applications in XWiki
Developing Applications in XWiki
 
Paris JUG Second Anniversary
Paris JUG Second AnniversaryParis JUG Second Anniversary
Paris JUG Second Anniversary
 
Dívida tecnica: precisando de crédito? Quão fundo entrar e como evitar que o ...
Dívida tecnica: precisando de crédito? Quão fundo entrar e como evitar que o ...Dívida tecnica: precisando de crédito? Quão fundo entrar e como evitar que o ...
Dívida tecnica: precisando de crédito? Quão fundo entrar e como evitar que o ...
 
Developing web applications in 2010
Developing web applications in 2010Developing web applications in 2010
Developing web applications in 2010
 

Similar a Java poliglota

Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragado
Maria
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014
Neptuno Networks
 
Universidad nacional de chimborazo
Universidad nacional de chimborazoUniversidad nacional de chimborazo
Universidad nacional de chimborazo
Jesica Pérez
 
Mi Lenguaje de Programación Preferido
Mi Lenguaje de Programación PreferidoMi Lenguaje de Programación Preferido
Mi Lenguaje de Programación Preferido
stylee4799
 

Similar a Java poliglota (20)

Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
Java
JavaJava
Java
 
[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma Java[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma Java
 
Java
JavaJava
Java
 
Introduccion a java i
Introduccion a java iIntroduccion a java i
Introduccion a java i
 
Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.java
 
Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragado
 
Programación de Software - Java
Programación de Software - JavaProgramación de Software - Java
Programación de Software - Java
 
Java lenguaje de desarrollo
Java lenguaje de desarrolloJava lenguaje de desarrollo
Java lenguaje de desarrollo
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014
 
Ut
UtUt
Ut
 
Pres1
Pres1Pres1
Pres1
 
Tutorial de eclipse 2
Tutorial de eclipse 2Tutorial de eclipse 2
Tutorial de eclipse 2
 
Curso java desde cero nivel i - modulo i
Curso java desde cero   nivel i - modulo iCurso java desde cero   nivel i - modulo i
Curso java desde cero nivel i - modulo i
 
Universidad nacional de chimborazo
Universidad nacional de chimborazoUniversidad nacional de chimborazo
Universidad nacional de chimborazo
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
Net vs java
Net vs javaNet vs java
Net vs java
 
sesion_01-JAVA.pdf
sesion_01-JAVA.pdfsesion_01-JAVA.pdf
sesion_01-JAVA.pdf
 
Mi Lenguaje de Programación Preferido
Mi Lenguaje de Programación PreferidoMi Lenguaje de Programación Preferido
Mi Lenguaje de Programación Preferido
 

Más de Domingo Suarez Torres

Más de 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
 
SGNext Elasticsearch
SGNext ElasticsearchSGNext Elasticsearch
SGNext Elasticsearch
 
Webinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosWebinar Arquitectura de Microservicios
Webinar Arquitectura de Microservicios
 

Último

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 

Último (20)

prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
LA JUNGLA DE COLORES.pptx Cuento de animales
LA JUNGLA DE COLORES.pptx  Cuento de animalesLA JUNGLA DE COLORES.pptx  Cuento de animales
LA JUNGLA DE COLORES.pptx Cuento de animales
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
Educacion Basada en Evidencias SM5 Ccesa007.pdf
Educacion Basada en Evidencias  SM5  Ccesa007.pdfEducacion Basada en Evidencias  SM5  Ccesa007.pdf
Educacion Basada en Evidencias SM5 Ccesa007.pdf
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Ensayo Paes competencia matematicas 2 Preuniversitario
Ensayo Paes competencia matematicas 2 PreuniversitarioEnsayo Paes competencia matematicas 2 Preuniversitario
Ensayo Paes competencia matematicas 2 Preuniversitario
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
animalesdelaproincia de beunos aires.pdf
animalesdelaproincia de beunos aires.pdfanimalesdelaproincia de beunos aires.pdf
animalesdelaproincia de beunos aires.pdf
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 

Java poliglota

  • 1. Desarrollo políglota en la plataforma Java Opciones para elegir
  • 2. Twitter Si usan Twitter pueden encontrarme en @domix Comenten sobre mi charla con el hashtag #javaGulev2KX #Gulev2KX
  • 3. Sobre mí Ingeniero de software desde 1999, experiencia en Java He fundado algunos grupos de usuarios JavaUp.org, SpringHispano.org, grails.org.mx Colaboro en algunos proyectos OpenSource Trabajo en @SynergyJ Empece a usar Groovy en 2007 y Scala en 2008
  • 4. Agenda Plataforma Java Soporte a múltiples lenguajes Jython JRuby Scala Groovy Frameworks y herramientas
  • 5. La Plataforma Java Una de las mas usadas en aplicaciones empresariales Mucha inversión por varias empresas de tecnología Ha demostrado su estabilidad y madurez durante varios años Utiliza el lenguaje más usado: Java
  • 8. Lenguaje Java Muy ceremonioso Criticado por hacer difícil lo sencillo Se usa el compilador para ayudar al desarrollador Zillions de lineas de código escritas en Java Librerías prácticamente para todo
  • 9. ¿Solo se puede usar el lenguaje Java?
  • 10. Podemos usar 300 lenguajes http://www.is-research.de/info/vmlanguages/300/
  • 11. ¿Porque usar otros lenguajes?
  • 12. Lenguajes Cada lenguaje tiene semántica y estructuras propias Cada uno fue diseñado con ciertos objetivos Podemos usar un lenguaje de propósito general, pero es casi seguro que tengamos que escribir mucho código Al ofrecer opciones, el desarrollador elige la mas adecuada para el
  • 13. ¿El futuro de Java? Radica en la JVM Y en su capacidad de ejecutar diversos lenguajes
  • 14. Incorporación a la JVM Lenguajes adaptados, “hacking” para que funcione Lenguajes diseñados desde el principio con la JVM en mete
  • 15. ¿Como elegir el lenguaje?
  • 16. Facilidad de uso, experiencia
  • 18. Python Gran lenguaje Sintaxis hermosa Una gran comunidad detrás Muchas librerías escritas en el Lenguaje interpretado
  • 19. Jython Nace a finales de 1997 Python en Java Idéntico a Python 2.2 Al igual que Python, Jython es dinámico Se han tenido que hacer muchas adecuaciones para que funcione mas o menos bien en la JVM
  • 20. Ejemplo en Jython from java.math import BigDecimal # Creamos una instancia de BigDecimal Numero = BigDecimal(0) # A la variable "b" se suma 6 b = Numero.add(BigDecimal(6)) print b
  • 21. Ejecución de Jython java -jar jython.jar script.py
  • 22. Usos de Jython WebLogic Server Application Server's wlst tool scripting using Jython IBM WebSphere Application Server's wsadmin tool scripting using Jython ZK is a Java Ajax framework that allows glue logic written in Jython.
  • 23. Ruby Lenguaje de propósito general, dinámico, orientado a objetos Es funcional, orientado a objetos, imperativo y reflectivo Tipado dinámico Es (era) el lenguaje que iba a matar a Java Charles Nutter ha dicho que el futuro de Ruby esta en JRuby
  • 24. JRuby Empieza su desarrollo en 2001 En 2006 Sun contrato a desarrolladores dedicados a poder Ruby y Rails en la JVM Actualmente el desarrollo lo lleva Engine Yard Compatible con Ruby 1.8.7 Puede correr de manera interpretada, JIT o AOT (Ahead of time) Se han tenido que hacer “arreglos”
  • 25. Ejemplo en JRuby include Java frame = javax.swing.JFrame.new() frame.getContentPane().add(javax.swing.JLabel.new('Hello, World!')) frame.setDefaultCloseOperation(javax.swing.JFrame::EXIT_ON_CLOSE) frame.pack() frame.set_visible(true) require 'java' java_import java.lang.System version = System.getProperties["java.runtime.version"]
  • 26. Scala Empieza su desarrollo en 2001 Es orientado a objetos y funcional Scala significa “Scalable Language” El compilador de Scala genera byte code Diseñado para vivir en la JVM y en otros entornos como .NET Pensado para concurrencia y para soportar ‘Actores’
  • 27. Ejemplo en Scala object HelloWorld extends Application { println("Hello, world!") } scalac HelloWorld.scala scala -classpath . HelloWorld
  • 28. Alrededor de Scala Lift, framework de web con características muy impresionantes como el inverse Ajax. Akka es una plataforma para construir aplicaciones orientadas a eventos, escalables y tolerantes a fallos
  • 29. Groovy Empieza su desarrollo en 2003 Es un lenguaje orientado a objetos, dinamico Diseñado para “robarse” cosas buenas de Python, Ruby Enorme comunidad Muchisimos proyecto alrededor de Groovy Mucho soporte de herramientas, Eclipse, NetBeans
  • 30. Ejemplo en Groovy println "Hola Mundo"
  • 31. Herramientas sobre Groovy Testing Spock GMock Construcción Gant Gradle Frameworks Griffon - Swing Gaelyk - Web Grails - Web

Notas del editor