jueves, noviembre 08, 2007

IJTC 2007, día 2

jueves, noviembre 08, 2007 por Martín

Hoy estoy un poco de malas porque tenía un montón de notas cogidas y perdí el bloc de notas. Y claro, como es un cine cuando fuí a recogerlo ya habían pasado las de la limpieza y no había rastro de él. En fin, que mejor excusa para hacer este resumen.

El día de hoy ha estado realmente bien. Un poco de falta de organización, pero que demonios, las charlas fueron muy interesantes y además había descanso después de cada charla con comida y bebida a cuenta de la organización, así que nada de lo que quejarse. La verdad es que todas las charlas a las que he ido me han gustado, y aún así me quedaron un par de charlas a las que me habría gustado ir. Pero es que había tres tracks diferentes con cinco charlas cada una y no se podía ir a todo :(

Comencé el día escuchando a Simon Cook con su "Java Update". Era la primera de la mañana y no había mucha gente, pero estuvo interesante de todos modos. Trató las novedades de Java 6 y Java 7, y lo más interesante para mi fue los últimos 10 minutos que los dedicó a petición de la sala a hablar de Java Realtime. No hay mucho que destacar. Más o menos la charla se centró en lo mismo que comentaba ayer, es decir la presencia cada vez más destacada de los lenguajes de scripting, y el convencimiento de que la máquina virtual ejecutará diferentes lenguajes en el futuro.

También habló bastante sobre el consumer JRE y explicó con detalle como funcionará. Como muchos ya sabréis el nuevo plugin carga las clases bajo demanda; se carga un núcleo principal y después el plugin va cargando las clases que no encuentra con lo que se consigue un tiempo de lanzamiento mucho mejor. Eso sí, un "Hola mundo" ocupa 1Mb. Al final de la charla le comenté los problemas que habíamos tenido con los applets y parece que esta carga bajo demanda no debería afectar. Otra cosa interesante es la nueva API de despliegue. Es una librería de javascript que permite especificar exactamente las versiones del JRE que queremos utilizar para cada aplicación en concreto.

La siguiente charla a la que fuí fue la de Richard Bair. Realmente una persona muy simpática que hizo la charla muy amena. Estuvo hablando sobre el consumer JRE, nuevamente protagonista, pero también sobre Java 2D y JavaFX. Mostró un montón de demos y también algo de código JavaFX que realmente promete. Parte de su charla se centró en resaltar que los applets pueden tener una nueva oportunidad con JavaFX. Ya que a pesar que se supone que con Java 6 la experiencia es mucho mejor pues con Java FX se intentará disponer de APIs que realmente se echan de menos para competir con flash como son un buen soporte de SVG, facilidad de uso de Java 2D y sobre todo librerías para tratamientos de media, en especial videos. Una de las notas interesantes es que el API de video se está diseñando ya especialmente pensada sobre JavaFX como un requisito fundamental, y que sólo en una versión posterior se verá como integrarla mejor con aplicaciones normales.

La tercera charla fue la de Guillaume Laforge sobre Groovy. Guillaume explicó los fundamentos de este lenguaje y las ventajas de que funciona directamente sobre la máquina virtual como el poder utilizarlo como motor de scripting para reglas, o el mezclar objetos Java y Groovy sin ningún límite, o el utilizar en Java features que todavía no están ni planeadas para el futuro, y este tipo de cosas. También se paró un poco en las desventajas como la pérdida de rendimiento.

Fue interesante uno de los casos de éxito que comentó, Mutual of Omaha, una empresa del Fortune 500 y en la que implantaron un motor basado en Groovy y en el que se desplegaron más de 50.000 líneas de código Groovy. Lo más interesante es que en el despliegue de código participaron tanto desarrolladores principiantes, como expertos, como, y he aquí lo interesante, personas que no tenían ni idea de programar. Casos como éste parecen demostrar, al menos en teoría, la utilidad de este lenguaje para la creación de DSLs y su capacidad de ser utilizados por no-programadores. En Internet buscando el nombre de la empresa, que no me acordaba, he encontrado otro listado con casos de éxito de Groovy.

La cuarta charla fue la de Stephen Farrell que se llamaba "Delivering Scalable, Lighweight Mobile Java technology to Millions of Users". Esta fue interesantísima. Stephen nos contó como trabajan en NewBay y nos habló del reto que era proporcionar contenido a millones de móviles y sobrevivir en el intento. Básicamente, esta compañía se dedica a almacenar, gestionar y proporcionar acceso, a modo de aplicaciones sencillas como blogs, a imágenes, videos, SMSs, llamadas, etc., y cualquier tipo de contenido que los usuarios pueden enviar a sus proveedores.

Lo que hace especial a estos escenarios es que conforme las redes mejoran, y los fabricantes de móviles añaden megapixels y megapixels, los retos aumentan. Hasta nos comentó que internamente manejan la medida de "sh1tabyte" que viene a significar "a shit a load of bytes" :-) Su stack se basa en Open Source y Java: Lucene, Hibernate, Spring Web Flow, Struts, SwiftMQ, JMagick, etc. y nos explicó algunos de los trucos que utilizan como evitar el almacenar estado, el desplegar diferentes funcionalidades de trabajo de imágenes en diferentes servidores, etc. Realmente muy interesante.

Y por último vi a James Strachan hablando sobre Apache Camel. Espectacular ponente. Realmente lo hizo muy bien, y su charla fue muy amena. Puedo decir que entré sin saber realmente lo que era Apache Camel y que ¡salí convencido de querer utilizarlo! ¿Alguien lo ha utilizado? Porque en serio, parece un API espectacular. En teoría es una implementación de los patrones del libro Enterprise Integration Patterns construida sobre Spring, y compatible con un montón de sistemas diferentes.

Creo que Apache Camel se merece uno, dos, o tres post en si mismo. La idea de definir tener todos esos endpoints y definir un bean en Spring (o una línea de código Java) para copiar objetos de una cola a un fichero; leer datos de un tópico, transformarlos con JAXB y pasar volcar esos objetos a base de datos; o leer datos de IBM MQSeries, transformarlos a javabeans, convertir eso en texto con freemarker y enviarlo por email, y todo ello definirlo en una única línea de código o en un par de líneas de configuración XML es simplemente demasiado tentador como para no echarle un vistazo. Realmente me dejó impactado.

En fin, que me parece que ha sido un día muy productivo. Salgo con varias ideas interesantes que me gustaría probar. A ver si el día de mañana es también productivo en cuanto a ideas.

comments

0 Respuestas a "IJTC 2007, día 2"