No solo un lenguaje puede resolver los problemas que se enfrentan al desarrollar aplicaciones. Cada lenguaje tiene su semántica y sin duda su aplicación. En la plataforma Java desde hace algunos años se brinda soporte para numerosos lenguajes, muchos de ellos creados específicos para la plataforma y otros traídos y adaptados para que puedan explotar las bondades, herramientas y librerías que desde hace muchos años forman parte del ecosistema Java.
En esta charla mostraremos algunos de los lenguajes mas representativos y mas usados en la plataforma Java, los lenguajes que mostraremos son Jython, JRuby, Scala y Groovy. Veremos un poco de su historia y como fueron integrados a la plataforma, así como algunos casos de éxito del uso de estos lenguajes. Ademas de ello analizaremos algunas herramientas disponibles para su uso.
Al termino de la charla los asistentes sabrán que existen muchas alternativas de lenguajes de programación sobre la plataforma Java para desarrollar aplicaciones sumamente escalables y algunas de las tendencias del mercado.
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
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
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
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
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’
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