martes, 25 de octubre de 2011

Expression Language (EL): Activación


El "expression language" es un tipo de notación en JSP que permite navegar sobre beans de una manera más simplificada y sencilla.

Si tengo por ejemplo un bean "Foo" con una propiedad llamada "prop" y a su vez esta contiene otra propiedad llamada prop2, la forma anticuada de accesar la propiedad sería:

"myFoo.getProp1().getProp2()"

Con EL podemos omitir los "get" de esta forma:

"${myFoo.prop1.prop2}"

Recientemente estaba teniendo un conflicto porque el JSP no me interpretaba el EL. Lo que me estaba faltando era un buena declaración del web.xml que indicara que estamos usando la versión 2.4 de Servlets:

<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

Quería dejar esto documentato porque me tomó rato averiguar como se activaba.

lunes, 24 de octubre de 2011

Sin temor a lucir "fuera de onda"


A veces pareciera que el mundo del desarrollo de software se comporta parecido al mundo de la moda. No lo digo porque piense que esté sujeto completamente a condiciones triviales como la influencia de una estrella pop sobre las jóvenes adolecentes, pero en menor escala, los frameworks estrella más populares tienden a monopolizar la atención de los ingenieros de software con recetas, a veces al punto de pensar que cualquier cosas distinta de la receta está fuera de moda.

Frameworks como Struts, Spring o Hibernate son herramientas exelentes para muchos de los desarrollos de software. El problema considero que comienza cuando un desarrollador cría un esquema en su mente, de que todos los proyectos deben implementarse con la receta estandar "para todas la tallas" que él utiliza. Si alguien más sugiere hacer algo diferente, o solamente menciona en alguna conversación amistosa a otro colega que está utilizando una técnica diferente, el chico receta framework podría verlo como el fuera de onda o inclusive hasta molestarlo por ser un dinosaurio a su parecer.

He estado viendo las exposiciones de la reciente conferencia de Java Zone 2011. Dos presentaciones en particular llamaron mi atención por su valentía para cuestionar el “status-quo”. Una expone un acercamiento diferente a la inyección de dependencias:


Dependency injection when you only have one dependency from JavaZone on Vimeo.

Y la otra, particularmente la que disfruté más, es la de esta entusiasta ingeniera, que con buenos argumentos, se para firme ante su negativa de utilizar Hibernate en sus desarrollos con persitencia en bases de datos.


Hibernate should be to programmers what cake mixes are to bakers: beneath their dignity. from JavaZone on Vimeo.

No estoy tomando partido en ninguna de estas dos presentaciones. Debo confesar que me falta experiencia como para tomar una posición informada en los tópicos mencionados, pero realmente admiro a estos dos por mostrar sin ningún titubeo, dos formas alternativas a técnicas actuales del desarrollo de software. La innovación aparece frequentemente en situaciones donde alguien se aparta de los demás.

Creo que como latinoamericanos tenemos mucho que aprender de estos dos ejemplos. Estamos muy acostumbrados a ser consumidores de tecnologías pero no a ser productores de ellas. Debemos tener la mente abierta para experimentar con nuevas alternativas, utilizando un criterio racional y mucha humildad para examinarlo todo, y ejercitar el jucio informático, el cual es clave en nuestro desarrollo profesional.