JSP es una tecnología heredada, JSF es como un dinosaurio, es a estado y basado en componentes. Si desea desarrollar aplicaciones distribuidas de alto tráfico que puedan escalar decenas, cientos, miles de nodos, prefiera marcos sin estado sobre componentes basados en estados. Los marcos sin estado pueden escalar fácilmente. Wicket, Tapestry y Lift son con mucha atención también. Hay Click framework pero no tiene innovación ni velocidad. Struts era bueno pero ahora es un viejo marco, Spring mvc 3 es mejor que los puntales. Sí, Spring mvc fue bueno, pero ahora hay mucho más ¡Play! Spring se vuelve como Java EE a tiempo, por otro lado, Play es un framework completamente nuevo con una excelente comunidad y documentación. Su futuro es brillante. Tiene muchas funciones en el núcleo (y es muy ligero) y también hay muchos módulos escritos para jugar (como gemas de rieles). En el último lanzamiento, consiguió websockets, gestión de dependencias, gestión de versiones db, módulo Scala mucho mejor, ...
Especialmente, el nuevo juego scala templating es muy fácil, escriba safe con una sintaxis de estado del arte (como asp. net mvc razor) con un gran rendimiento como se puede ver en la prueba http://www.jtict.com/blog/rails-wicket-grails-play-lift-jsp/ (el juego es más rápido en la prueba)
Puedes usar tanto java como scala con el juego, pero en mi opinión el scala es un lenguaje mejor que java y compite con C#, Ruby, Python con funciones de nueva generación (Java no puede), así que prefiero Scala con Play. Lift es también un framework scala, pero es más y más complicado que jugar y muy lleno de estados.
Además, la plataforma y la selección de idioma son geniales. Como desarrollador de .net experimentado no recomiendo webs asp.net ni asp.net mvc, siempre prefiero las tecnologías de código abierto independientes de la plataforma. Python/Django y Ruby/Rails son lentos y no son seguros. PHP y Perl son tecnologías heredadas. La mejor plataforma hoy en día es jvm (.net funciona solo en windows y mono kill by attachmate), por lo que estás en el camino correcto.
-1 Supongo que su pregunta de referencia se mantiene abierta para fines históricos, pero no debe utilizarse como un ejemplo de una buena pregunta. No hay una respuesta correcta aquí y esto realmente solo está comenzando una discusión. Yo votaría que esto sea cerrado (si tuviera suficiente representante). –
Votado para ser movido a los programadores stackexchange – canadiancreed