domingo, 23 de diciembre de 2007

JavaServer Faces, ¿el substituto de Struts?

Una de las alternativas con respecto a los frameworks de presentación que han aparecido en los últimos años con más fuerza en el mundo open source es JavaServer Faces (JSF).

He podido trabajar con esta tecnología en los últimos proyectos en los que he participado y en la siguiente lista resumo lo que, en mi opinión, son los puntos fuertes de esta tecnología, desde mi experiencia práctica.
  1. Orientado a componentes (estilo Swing) a diferencia de Struts, que está orientado a comandos. Para mí, esta filosofia en el desarrollo de presentaciones web es mucho más intuitiva para un programador.

  2. Es un estandard REAL y no "de-facto" como Struts. De hecho JSF está incluido dentro de las especificaciones JEE 5. ¿Y qué aporta esto? Todas las grandes compañías tecnológicas y comunidades open source están apostando por JSF y han aportado o integrado librerías de componentes (Sun, BEA, IBM, Oracle, Apache, JBoss,...).

  3. Relacionado con el punto anterior, existen múltiples librerías de componentes complejos (AJAX, Drag'n'Drop,...) que facilitan la vida al programador una barbaridad a la hora de hacer paginas visualmente complejas (que por otro lado es lo que mercado empieza a demandar hoy en día). Además puedes utilizarlas simultáneamente (he llegado a integrar en un proyecto RichFaces, Ajax4JSF, Facelets, Tomahawk y MyFaces, y os aseguro que funciona).

  4. Existen herramientas WYSIWYG (editores visuales), aunque no proporcionan esa funcionalidad para todos los componentes. El RAD de IBM proporciona un pintador para componentes IBM, el JDeveloper para Oracle, MyEclipse y Eclipse Europa (3.3 + WTP 2.0) tienen pintador sólo para componentes básicos (MyFaces o RI de Sun). Que los pintadores sean para librerías concretas NO SIGNIFICA que no se puedan incluir otras librerías. A pesar de no existir pintadores genéricos, el tema "snippets" puede ser tan válido e incluso mejor que el pintador.

  5. Podría parecer que JSF está poco maduro pero opino todo lo contrario. A parte de que la diversidad en cuanto a librerías va aumentado continuamente, hace más de un año que apareció la especificación JSF 1.2. En ella, se mejora aspectos concretos de especificaciones anteriores y aporta soluciones específicas (gestión de frames, pop-ups, etc.).

Por todo esto y por la demanda en temas JEE que empieza a haber en las empresas, tengo la impresión que Struts va perdiendo importancia y se quedará como una tecnología "migrable" en el futuro (más trabajo para nosotros... ;) ). La cuestión es cual será la próxima tecnología en presentación: ¿ JSF, FLEX, GWT , JavaFX, Silverlight,...? El tiempo dirá!

2 comentarios:

Alejandro dijo...

Hola, me ha parecido interesante tu comentario sobre JSF, estoy iniciándome en esta tecnología y me parece muy interesante. Estoy leyendo algo de documentación sobre JSF y me preguntaba si te importaría recomendarme alguna web, libro o manual sobre esta tecnología.
Gracias.

Antonio Pérez dijo...

Hola alejandro, pues encantado de pasarte algunas referencias.

En http://www.coreservlets.com/JSF-Tutorial/ encontrarás un tutorial bastante completo (y sencillo de seguir) de JSF. De hecho, yo empecé con esto y siempre lo he recomendado a todo aquel que empieza a mirar cosas de esta tecnología.

JSF Central (http://www.jsfcentral.com/ es un website donde puedes encontrar prácticamente cualquier cosa relacionada con JSF. Si entras en "products" encontrarás una clasificación (implementations, components, render-kits,etc...) muy buena de enlaces.

Por último te recomendaría especialmente la web de MyFaces (http://myfaces.apache.org/) para empezar a conocer esta tecnología. Finalmente tienes RichFaces que son unas librerías open source de componentes JSF realmente muy completos y con capacidades AJAX incluidas por defecto (http://labs.jboss.com/jbossrichfaces/).

Saludos cordiales!
Antonio.