ACTUALIZACIÓN: Tapestry 5.2 está disponible, por lo que no está abandonado, como parecía estarlo anteriormente. Mi experiencia es con Tapestry 4, no con 5, por lo que su kilometraje puede variar. Mi opinión sobre Tapestry ha cambiado a lo largo de los años; He modificado esta publicación para reflejarlo.
Ya no puedo recomendar Tapestry como lo hacía anteriormente. Tapestry 5 parece ser una mejora significativa, pero mi principal problema con Tapestry no es la plataforma en sí; es con la gente que está detrás.
Históricamente, cada actualización importante de la versión de Tapestry ha roto la compatibilidad con versiones anteriores con prejuicios extremos, mucho más de lo que cabría esperar. Esto parece deberse a la incorporación de nuevas técnicas o tecnologías de codificación que requieren reescrituras importantes.
Howard Lewis Ship (el autor principal de Tapestry) es sin duda un desarrollador brillante, pero no puedo decir que me preocupe por su gestión del proyecto Tapestry. El desarrollo de Tapestry 5 comenzó casi inmediatamente después del envío de Tapestry 4. Por lo que puedo decir, Ship prácticamente se dedicó a eso, dejando Tapestry 4 en manos de otros colaboradores, que creo que no son tan capaces como Ship. Después de haber hecho el doloroso cambio de Tapestry 3 a Tapestry 4, sentí que me habían abandonado casi de inmediato.
Por supuesto, con el lanzamiento de Tapestry 5, Tapestry 4 se convirtió en un producto heredado. No tendría ningún problema con esto si la ruta de actualización no fuera tan brutal nuevamente . Así que ahora nuestro equipo de desarrollo se encuentra en una posición poco envidiable: podríamos seguir usando una plataforma web esencialmente abandonada (Tapestry 4), hacer la atroz actualización a Tapestry 5 o renunciar a Tapestry por completo y reescribir nuestra aplicación usando otra plataforma. Ninguna de estas opciones es muy atractiva.
El tapiz 5 supuestamente está escrito para reducir la probabilidad de que se rompa la actualización a partir de este momento. Un buen ejemplo son las clases de página: en encarnaciones anteriores, las clases de página descendían de una clase base proporcionada por Tapestry; Los cambios de API incompatibles en esta clase fueron la causa de una gran cantidad de problemas de compatibilidad con versiones anteriores. En Tapestry 5, las páginas son POJO que se mejoran en tiempo de ejecución con el "polvo mágico del tapiz" a través de anotaciones. Por lo tanto, siempre que se mantenga el contrato para las anotaciones, los cambios en Tapestry no afectarán las clases de su página.
Si esto es correcto, entonces escribir una nueva aplicación usando Tapestry 5 podría resultar bien. Pero personalmente, no tengo ganas de volver a poner la mano en el quemador.