tag:blogger.com,1999:blog-7066997711286640384.post-62377520344621950272008-01-05T16:36:00.000+01:002008-01-05T18:29:37.892+01:002008-01-05T18:29:37.892+01:00Comparación de frameworks Java de presentación webEn <a href="http://raibledesigns.com/rd/entry/comparing_jvm_web_frameworks_presentation">Raible Designs</a> puedes ver esta comparativa:<br /><ul class="glassList"><li><a href="http://static.raibledesigns.com/repository/presentations/ComparingJavaWebFrameworks-ApacheConUS2007.pdf">Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket</a></li><li><a href="http://static.raibledesigns.com/repository/presentations/ComparingJVMWebFrameworks-ApacheConUS2007.pdf">Comparing Flex, Grails, GWT, Seam, Struts 2 and Wicket</a></li></ul>con el siguiente resumen:<br /><br /><a style="font-weight: bold;" href="http://www.adobe.com/es/products/flex/">Adobe Flex 2</a> (<a href="http://www.adobe.com/devnet/flex/?tab:samples=1">ver ejemplos</a>)<br /><br />Ventajas:<br /><ul><li>Capaz de generar interfaz de usuario Flash.</li><li>Fundado por Adobe.</li><li>El famoso editor <a href="http://www.picnik.com/">Picnik</a> está realizado con Flex.</li></ul>Desventajas:<br /><ul><li>No es amigable para los motores de búsqueda.</li><li>No renderiza bien el contenido HTML.</li><li>No imprime bien por defecto.</li></ul><a style="font-weight: bold;" href="http://grails.codehaus.org/">Grails</a> (<a href="http://grails.codehaus.org/Grails+Screencasts">ver ejemplos</a>)<br /><br />Ventajas:<br /><ul><li>Menor curva de aprendizaje -> productividad asombrosa.<br /></li><li>El lenguaje <a href="http://groovy.codehaus.org/">Groovy</a> es fácil de aprender para los desarrolladores Java.</li><li>Usa Spring e Hibernate como base.</li></ul>Desventajas:<br /><ul><li>Rendimiento menor que los frameworks más "crudos".<br /></li><li>Puede ser difícil de "vender" a aquellos que les gusta Java.</li><li>Virtualmente desconocido fuera de los blogs.<br /></li></ul><a style="font-weight: bold;" href="http://code.google.com/webtoolkit/">GWT</a> (<a href="http://code.google.com/webtoolkit/examples/">ver ejemplos</a>; ver también los <a href="http://gwt-ext.googlecode.com/svn/trunk/site/samples/Showcase/Showcase.html#formWithGrid">ejemplos</a> de <a href="http://code.google.com/p/gwt-ext/">GWT-Ext</a>)<br /><br />Ventajas:<br /><ul><li>Escribes Java -> produce JavaScript</li><li>Puede crear fácilmente aplicaciones con interfaces de usuario orientadas a servicio.</li><li>Fácil de aprender y desarrollar con herramientas de Java stándar.</li></ul>Desventajas:<br /><ul><li>Es difícil añadir GWT sobre código ya existente.</li><li>Carece de soporte a Java 5.</li><li>Carece de widgets avanzados (aunque sí GWT-Ext).</li></ul><a style="font-weight: bold;" href="http://www.jboss.com/products/seam">JBoss Seam</a> (<a href="http://seam.demo.jboss.com/home.seam">ver ejemplos</a>)<br /><br />Ventajas:<br /><ul><li>Framework de "pila completa" con generación de aplicaciones <a href="http://es.wikipedia.org/wiki/CRUD">CRUD</a>.</li><li>Se integra con jBPM.</li><li>Fundado por JBoss/Red Hat.</li></ul>Desventajas:<br /><ul><li>Es JSF.</li><li>Funciona mejor en el servidor de aplicaciones JBoss.</li><li>Diseñado para EJB3.</li></ul><span style="font-weight: bold;"><a href="http://java.sun.com/javaee/javaserverfaces/">JSF</a> </span>(en general)<br /><br />Ventajas:<br /><ul><li>Estándar Java EE. Gran cantidad de demanda de empleo.</li><li>Desarrollo fácil y rápido.</li><li>Cantidad de librerías de componentes.</li></ul>Desventajas:<br /><ul><li>Mezcla de etiquetas para JSPs.</li><li>No representa bien el estado, según los principios de <a href="http://es.wikipedia.org/wiki/Representational_State_Transfer">REST</a>.<br /></li><li>No hay una fuente única de implementaciones.<br /></li></ul><a style="font-weight: bold;" href="http://struts.apache.org/2.x/">Struts 2</a><br /><br />Ventajas:<br /><ul><li>Estructura sencilla, fácil de extender.</li><li>La librería de etiquetas de salida es fácil de personalizar, con <a href="http://freemarker.org/">FreeMarker</a> o <a href="http://velocity.apache.org/">Velocity</a>.</li><li>Navegación basada en páginas.</li></ul>Desventajas:<br /><ul><li>Documentación pobremente organizada.</li><li>Paso a Apache con dificultades.</li><li>Documentación sobre Struts 1.x.</li></ul><a style="font-weight: bold;" href="http://wicket.apache.org/">Apache Wicket</a> (<a href="http://wicket.apache.org/examples.html">ver ejemplos</a>)<br /><br />Ventajas:<br /><ul><li>Genial para desarrolladores Java que no son desarrollaores web.</li><li>Relación muy cerrada entre páginas y vistas.</li><li>Comunidad muy activa, soportada por los creadores.</li></ul>Desventajas:<br /><ul><li>Las plantillas HTML conviven con el código Java.</li><li>Requiere gran comprensión de la orientación a objetos.</li><li>Todo se realiza en Java.</li></ul><span style="font-weight: bold;">¿Y el resto?<br /></span><br /><a href="http://mc4j.org/confluence/display/stripes/Home">Stripes</a> tiene una comunidad muy pequeña y sin libros.<br /><br /><a href="http://www.springframework.org/">Spring MVC</a> funciona bien pero el modelo de programación de Struts 2 es mejor (aunque son bastante similares). Ver también <a href="http://www.programania.net/programacion/orientada-a-objetos/spring-mvc-vs-struts/">esta comparativa</a>.<br /><br /><a href="http://tapestry.apache.org/">Tapestry</a> no mantiene compatibilidad entre versiones. Además, ha tenido una caida significativa en el número de empleos demandados y en otras estadísticas en los últimos meses.<br /><br /><br /><span style="font-weight: bold;">Pero ojo... todo esto puede cambiar en los próximos meses...</span><br /><span style="font-weight: bold;"></span>el holgazánhttp://www.blogger.com/profile/06957959468971558977noreply@blogger.com1