SlideShare una empresa de Scribd logo
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

KEY
El proceso de desarrollo con herramientas Open Source
PPT
Creación de Plataformas
PPTX
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
PDF
NetBeans - El único IDE que necesitas
PDF
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
KEY
Webminar: Java como una plataforma Poliglota
PDF
Dev Tools para Kubernetes - Codemotion 2019
ODP
Jobsket.com, Grails en un proyecto real
El proceso de desarrollo con herramientas Open Source
Creación de Plataformas
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
NetBeans - El único IDE que necesitas
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
Webminar: Java como una plataforma Poliglota
Dev Tools para Kubernetes - Codemotion 2019
Jobsket.com, Grails en un proyecto real

La actualidad más candente (19)

DOCX
PDF
Intro a Grails @ ITESCA
PDF
Grails en el Fonasol
ZIP
grails.org.mx Primera Reunion
PDF
Introducción a la programación para joomla
PPTX
Java completo y agragado
PPTX
Java script(1)
PPTX
Taller de laravel
PPTX
Introducción a los Frameworks PHP
PPTX
Java script(1)
PDF
Node para Javeros: Conoce a tu enemigo
PDF
Grails en SG08
PDF
Introduccción a la programación en Joomla!
PDF
Primeros pasos con java 9
PDF
Características Java
PPT
Prototipos Rapidos En Ruby + JRuby
PDF
Proyecto Hola Mundo java.Programación.
PDF
Introducción a CoffeeScript
Intro a Grails @ ITESCA
Grails en el Fonasol
grails.org.mx Primera Reunion
Introducción a la programación para joomla
Java completo y agragado
Java script(1)
Taller de laravel
Introducción a los Frameworks PHP
Java script(1)
Node para Javeros: Conoce a tu enemigo
Grails en SG08
Introduccción a la programación en Joomla!
Primeros pasos con java 9
Características Java
Prototipos Rapidos En Ruby + JRuby
Proyecto Hola Mundo java.Programación.
Introducción a CoffeeScript
Publicidad

Destacado (8)

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

Similar a Java poliglota (20)

PPT
Tecnologia Java
PPTX
PDF
[ES] Primeros pasos con la Plataforma Java
PPTX
Java
PPTX
Introduccion a java i
PDF
Desarrollo.de.aplicaciones.con.java
PPTX
Java completo y agragado
PPTX
Programación de Software - Java
PPTX
Java lenguaje de desarrollo
PPTX
My programming language 04 05-2014
DOCX
PPTX
Pres1
PDF
Tutorial de eclipse 2
PDF
Curso java desde cero nivel i - modulo i
DOCX
Universidad nacional de chimborazo
PPT
C1 java introduccion
PPT
C1 java introduccion
PPTX
PDF
sesion_01-JAVA.pdf
PPTX
Mi Lenguaje de Programación Preferido
Tecnologia Java
[ES] Primeros pasos con la Plataforma Java
Java
Introduccion a java i
Desarrollo.de.aplicaciones.con.java
Java completo y agragado
Programación de Software - Java
Java lenguaje de desarrollo
My programming language 04 05-2014
Pres1
Tutorial de eclipse 2
Curso java desde cero nivel i - modulo i
Universidad nacional de chimborazo
C1 java introduccion
C1 java introduccion
sesion_01-JAVA.pdf
Mi Lenguaje de Programación Preferido

Más de Domingo Suarez Torres (20)

PDF
Projecto Loom - Structured Concurrency - JavaMexico - Julio 2024
PDF
Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
PDF
Java Dev Day 2019 No kuberneteen por convivir
PDF
Contenedores 101 Digital Ocean CDMX
PPTX
Retos en la arquitectura de Microservicios
PDF
Java Cloud Native Hack Nights GDL
PDF
meetup digital ocean kubernetes
PDF
Peru JUG Micronaut & GraalVM
PDF
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
PDF
Cloud Native Development in the JVM
PDF
Cloud Native Mexico - Introducción a Kubernetes
PDF
Meetup DigitalOcean Cloud Native architecture
PDF
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
PDF
Cloud Native Mexico Meetup enero 2018 Observability
PDF
Cloud Native Mexico Presentacion
PDF
gRPC: Beyond REST
PDF
Devops Landscape
PDF
Orquestación de contenedores con Kubernetes SGNext
PDF
JVM Reactive Programming
PDF
SGNext Elasticsearch
Projecto Loom - Structured Concurrency - JavaMexico - Julio 2024
Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Java Dev Day 2019 No kuberneteen por convivir
Contenedores 101 Digital Ocean CDMX
Retos en la arquitectura de Microservicios
Java Cloud Native Hack Nights GDL
meetup digital ocean kubernetes
Peru JUG Micronaut & GraalVM
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
Cloud Native Development in the JVM
Cloud Native Mexico - Introducción a Kubernetes
Meetup DigitalOcean Cloud Native architecture
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Presentacion
gRPC: Beyond REST
Devops Landscape
Orquestación de contenedores con Kubernetes SGNext
JVM Reactive Programming
SGNext Elasticsearch

Último (20)

PPT
Cosacos y hombres del Este en el Heer.ppt
PDF
Habilidades de comunicación en la era digital (planeación)
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
PDF
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PDF
JESUCRISTO ESTÁ EN LA TIERRA
PDF
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PDF
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PPTX
Presentación: Cumplimiento del Empleador
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PDF
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
Cosacos y hombres del Este en el Heer.ppt
Habilidades de comunicación en la era digital (planeación)
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
JESUCRISTO ESTÁ EN LA TIERRA
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
Presentación: Cumplimiento del Empleador
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
DI, TEA, TDAH.pdf guía se secuencias didacticas
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
COMUNICACION EFECTIVA PARA LA EDUCACION .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