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
   #synWeb
   #jaPol
Sobre mí

Ingeniero de software desde 1999, experiencia en Java
Colaboro en algunos proyectos OpenSource
  Plugins para Grails en Codehaus
Trabajo en @SynergyJ como CTO
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
Tendencias
ThoughtWorks Technology Radar

 http://www.thoughtworks.com/radar
Webminar: Java como una plataforma Poliglota
Webminar: Java como una plataforma Poliglota
Gracias
domingo.suarez@synergyj.com
Twitter: @domix

Más contenido relacionado

KEY
Java poliglota
PPTX
Introduccion a java i
PPTX
Java completo y agragado
PPTX
Programación de Software - Java
PPTX
Compiladores
ODP
Metreología Programación
PPSX
Instituto Cristiano Encuentro
Java poliglota
Introduccion a java i
Java completo y agragado
Programación de Software - Java
Compiladores
Metreología Programación
Instituto Cristiano Encuentro

La actualidad más candente (17)

PPTX
Lenguajes programacion
PPT
Presentación lenguajes de programación
PPT
Introduccion a Java
PPTX
Lenguaje de programación java
PPTX
Entrega 4 Exposicion final
DOCX
PPTX
PPTX
Laboratorio de programación II
PDF
Desarrollo.de.aplicaciones.con.java
PPTX
todo sobre java
PPTX
PPSX
Lenguajes de programacion en pps en el Plantel de Zacualpan, Tlaxcala
DOCX
Investigación Estructura de un Programa en Java
DOCX
DOCX
Tabla de diversidad de lenguajes de programacion orientada a objetos
DOCX
Tabla de Diversidad de lenguajes de programacion orientada a objetos
PDF
Compiladores
Lenguajes programacion
Presentación lenguajes de programación
Introduccion a Java
Lenguaje de programación java
Entrega 4 Exposicion final
Laboratorio de programación II
Desarrollo.de.aplicaciones.con.java
todo sobre java
Lenguajes de programacion en pps en el Plantel de Zacualpan, Tlaxcala
Investigación Estructura de un Programa en Java
Tabla de diversidad de lenguajes de programacion orientada a objetos
Tabla de Diversidad de lenguajes de programacion orientada a objetos
Compiladores
Publicidad

Destacado (9)

PDF
Vm flyer jpn - 10.15.10
PPT
Edad moderna exelente
PDF
世界遺產50選
PDF
ереже
PPTX
Fenômenos
PPTX
LAXMI BOOK PUBLICATION
PPS
水果和它的花
XLS
吃到飽大全
PDF
Weekly commodity-report 14-18 july by epic research pvt.ltd indore
Vm flyer jpn - 10.15.10
Edad moderna exelente
世界遺產50選
ереже
Fenômenos
LAXMI BOOK PUBLICATION
水果和它的花
吃到飽大全
Weekly commodity-report 14-18 july by epic research pvt.ltd indore
Publicidad

Similar a Webminar: Java como una plataforma Poliglota (20)

PPT
Tecnologia Java
PPTX
My programming language 04 05-2014
PPTX
Java
PPTX
PDF
[ES] Primeros pasos con la Plataforma Java
PPTX
Java completo y agragado
PPTX
DOCX
Universidad nacional de chimborazo
PPTX
Java lenguaje de desarrollo
DOCX
Aprendiendo Java SCF
PPT
Módulo 01 Introducción a la Tecnología Java
PPTX
Lenguaje Java
PPTX
Mi lenguaje de programación de preferencia
DOCX
Cuestionario
PDF
sesion_01-JAVA.pdf
PDF
Tutorial de eclipse 2
PPTX
Pres1
PPTX
Lenguajes de programación para la web
PPT
C1 java introduccion
PPT
C1 java introduccion
Tecnologia Java
My programming language 04 05-2014
Java
[ES] Primeros pasos con la Plataforma Java
Java completo y agragado
Universidad nacional de chimborazo
Java lenguaje de desarrollo
Aprendiendo Java SCF
Módulo 01 Introducción a la Tecnología Java
Lenguaje Java
Mi lenguaje de programación de preferencia
Cuestionario
sesion_01-JAVA.pdf
Tutorial de eclipse 2
Pres1
Lenguajes de programación para la web
C1 java introduccion
C1 java introduccion

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
Que son las redes de computadores y sus partes
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
Introduccion a servidores de Aplicaciones (1).pptx
PDF
clase auditoria informatica 2025.........
PDF
SAP Transportation Management para LSP, TM140 Col18
DOCX
Trabajo colaborativo Grupo #2.docxmmuhhlk
PDF
Estrategia de apoyo tecnología miguel angel solis
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
Yogurt de tocosh (1).pptx preparacion receta
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PDF
Maste clas de estructura metálica y arquitectura
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PDF
diagrama de pareto.pdf valerie giraldo diaz
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPTX
Administración se srevidores de apliaciones
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PDF
Temas y subtemas de las fichas 1 y 2.pdf
Que son las redes de computadores y sus partes
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Introduccion a servidores de Aplicaciones (1).pptx
clase auditoria informatica 2025.........
SAP Transportation Management para LSP, TM140 Col18
Trabajo colaborativo Grupo #2.docxmmuhhlk
Estrategia de apoyo tecnología miguel angel solis
introduccion a las_web en el 2025_mejoras.ppt
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Yogurt de tocosh (1).pptx preparacion receta
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Maste clas de estructura metálica y arquitectura
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
diagrama de pareto.pdf valerie giraldo diaz
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
REDES INFORMATICAS REDES INFORMATICAS.pptx
Administración se srevidores de apliaciones
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Temas y subtemas de las fichas 1 y 2.pdf

Webminar: Java como una plataforma 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 #synWeb #jaPol
  • 3. Sobre mí Ingeniero de software desde 1999, experiencia en Java Colaboro en algunos proyectos OpenSource Plugins para Grails en Codehaus Trabajo en @SynergyJ como CTO 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
  • 33. ThoughtWorks Technology Radar http://www.thoughtworks.com/radar