Comparacion en desempeño de varios frameworks web para java

Saludos, pues acabo de encontrar esta comparacion entre varios frameworks para web y me parecio interesante compartirlo, analizan varios puntos y pues segun la puntuacion creo que el 'ganador' de esta lista se la lleva GRAILS.

Los criterios los van explicando conforme avanza la presentacion.

aqui les dejo el link a la presentacion

Comparacion entre frameworks web para java

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

incompleto...

Y eso que la comparación está incompleta, al menos para Play y Grails, porque estos dos frameworks incluyen además la parte de acceso a datos, manejo de entidades, etc. Pero seguramente no incluyeron eso porque los otros frameworks son puramente web.

Estaría interesante ver un comparativo de Play y Grails ya tomando en cuenta todos estos aspectos (sobre todo Play 2.0 que acaba de salir y ahora ya está el gran anuncio de que habrá soporte comercial por parte de Typesafe).

Me parece importante

Me parece importante que la gente de más experiencia en el ambito laboral/profesional pueda explicar ¿por qué? en todas (+95%) las ofertas de empleo piden conociminetos de Struts. Si de acuerdo a la imagen la evaluación de Struts2 es de media tabla.

¿A qué se debe o qué onda?

Saludos

Imagen de ezamudio

Historia

Struts hoy en comparación con los otros frameworks que hay, es una vil mugre. Pero pues Struts 1 fue de los primeros (no estoy seguro pero podría ser el primero realmente) frameworks para web que permitían simplificar un poco el desarrollo en Java porque ya no eran JSP pelones.

Al ser el único que existía al principio, muchas empresas de todo tamaño lo adoptaron. Las empresas chicas después pueden darse a veces el lujo de abandonar esa tecnología y tomar una mejor para nuevos desarrollos, pero en organizaciones grandes (bancos, gobierno, etc) es muy difícil que decidan cambiarse a otra cosa. Así que si adoptaron Struts pues la única opción es Struts 2, y si un día sale Struts 3 es probablemente lo que usarán. No importa que Struts 2 no sea realmente compatible con Struts 1 y que tengan que reescribir muchas cosas; eso no lo sabe el director de sistemas, o no le importa, o a su jefe o al jefe de su jefe, etc; la cosa es que se sigue llamando Struts y por eso es lo que pueden seguir usando. Cambiarse a otro framework es abandonar lo que tienen y reescribir muchas cosas y la integración será difícil etc etc etc (así es en algunos casos, no en todos, pero así se percibe en todos los casos).

Las ofertas de trabajo donde piden Struts generalmente son para entrar a desarrollos existentes, ya sea para terminarlos o para darles mantenimiento, actualizarlos etc, o en casos de empresas grandes, para hacer nuevos desarrollos usando la tecnología por la que se decidieron hace muchos años y que no se animan a dejar atrás.

Imagen de Sr. Negativo

Struts

Me sorprende que siga estando Struts, según tenia entendido era (es) un mal framework (no lo he usado, pero he leido críticas muy malas).

En muchos lugares te piden que manejes XML, Java, Oracle, etc. para que al final uses Visual Basic y/o SQL Server. A veces por no llevar la contraria se sigue el camino más fácil: "fulanito usa X herramienta, ah ... entonces nosotros también"

Creo que esa tabla es muy subjetiva (según yo) y no hay un análisis serio que la fundamente.

Imagen de ezamudio

subjetiva?

Crees que es subjetiva? En qué basas tu observación (que esa sí creo que sea subjetiva)? esa tabla es parte de una presentación que se hizo hace poco (horas) en Devoxx. Mi observación subjetiva: la verdad no creo que el autor se haya inventado la tabla así nomás, porque en ese evento no sólo te encuentras usuarios de todos esos frameworks, sino hasta a varios de los autores y committers, que te pueden desmentir fácilmente o pedirte que presentes los fundamentos de lo que estás diciendo.

Si ves la presentación, después de la tabla se meten a detalle con la manera en que hicieron las métricas para la tabla. 17 horas de pruebas (y no me refiero a un monito dándole click a jUnit por 17 horas, sino a que las baterías de pruebas que hicieron, las corrieron tantas veces que en total fueron 17 horas de pura ejecución, sin contar el tiempo de configuración, programación, etc). Al final ya tomando en cuentra varios otros criterios, se ve que se fueron por GWT, siendo los otros finalistas Spring MVC, Wicket y JSF 2.

Creo que esa tabla es muy objetiva (según yo) y en la misma presentación se puede ver el análisis serio que la fundamenta.

Imagen de greeneyed

Pues yo la comparativa así no

Pues yo la comparativa así no la usaría para tomar absolutamente ninguna decisión ni basarme en nada. Y viendo el nombre de los criterios, está claro que no son objetivos. Cosas como "developer perception" o "Degree of Risk" da igual que las pintes como un número, es algo subjetivo. Y especialmente viendo que los valores son totalmente discretos y solo pueden tomar 3 valores... en fin. La diferencia entre Grails y GWT podría ser simplemente un libro publicado más... y la diferencia entre ofertas de trabajo entre X e Y podría ser de 800 a 1, pero eso sólo es 0,5, con publicar un libro más, todo arreglado.

Y si la presentan en Devoxx como si la presentan en el JavaOne, he atendido ambas conferencias y he presentado 3 veces en JavaOne y ni las presentaciones son la verdad absoluta ni los que presentan en ellas son poseedores de un conocimiento ultrahumano :).

Estas comparaciones le sirven, con suerte, al que las ha hecho por que tenía unos objetivos y requerimientos específicos, aparte de eso sólo sirven para dar conferencias y dar que hablar en Internet.

IMHO, of course.

Imagen de greeneyed

Y en cuanto a cosas como Struts...

Frameworks como Struts o lenguajes como Java, están por que siguen vivos y siguen teniendo utilidad, por muy mal que mucha gente hable de ellos por que ahora es lo "cool". De todas formas, por hacer una analogía, mi coche tiene ahora 13 años y si lo comparas con los modelos actuales, en consumo, seguridad, confort etc. queda a la altura del betún, pero hace 13 años era la caña y no he tenido necesidad real de cambiarlo y por eso lo sigo usando. El que se compre ahora un coche nuevo no se comprará uno como el mío, faltaría más, pero todo el mundo no se cambia de coche cada año (excepto en los paises que practicamente obligan para mantener viva su industria ;) ).

Así que están ahí por que se siguen usando por que hay programas escritos con esos frameworks y sigue haciendo falta gente que los mantenga o mejore. Hasta que desaparezcan del todo...

PD: Y para acabar de redondear, Struts 2 es totalmente diferente a Struts, ni siquiera viene del mismo código, y lo único que tiene de Struts es el nombre, así que hay que distinguir entre la versión 1 y la 2. La historia de la evolución del 1 al 2 es ciertamente curiosa, aunque off topic :)

Imagen de Sr. Negativo

Re:Subjetiva

@ezamudio
Según yo, es subjetiva. Pero, bien gracias por la aclaracion

Imagen de Algus Dark

Y si les dieran la

Y si les dieran la oportunidad de comenzar un proyecto, del cual se basaría un estándar para realizar cualquier proyecto posterior... ¿por cual framework se irían?

Imagen de bferro

Total matching con @greeneyed

Creo que si ayer hubiera escrito mi opinión sobre lo que se discute, habría escrito algo muy similar.
He pensado sobre los criterios que se usan para evaluar esos marcos de trabajo y debo confesar que algunos de ellos los considero "adecuados" para evaluar técnicas (con los métodos que las acompañan) para el desarrollo de software. Habría que preguntarle a los encuestadores sobre varias cosas importantes que deben tenerse en cuenta para realizar encuestas. Y uso la palabra encuesta porque algunas de las "métricas" que utilizan se parecen más a una encuesta que a otra cosa. Tómese por ejemplo, la productividad del desarrollador (developer productivity):
¿Encontraron los autores un conjunto representativo de developers con el mismo nivel de expertisidad ( ya se que esa palabra sería vetada por Alonso Quijano) para medir ese rasgo?
Sobre el rango "quality of Docs/Tutorials:
¿Realizaron los autores una revisión exhaustiva de los recursos disponibles que documentan u ofrecen tutoriales sobre esos frameworks? ¿En qué idioma? ¿O se basaron solamente en lo que ofrece la empresa que los inventa?. Si es el caso último, tal medición nada vale.
Sobre el rango "curva de aprendizaje:
¿Curva de aprendizaje para qué público? Mucha gente tiene problemas con Scala porque son expertos en la programación imperativa y poco o casi conocen de programación funcional (lo que no es un pecado capital), pero para el conocedor de ambos paradigmas de programación, la curva de aprendizaje tiene muy poca pendiente.
Sobre la disponibilidad de desarrolladores:
¿En qué contexto, país, región, dominio de problemas?

Otras métricas son concretas, pero según entiendo (si estoy equivocado me aclaran) de la tabla, se realiza una suma aritmética de todos los rasgos sin ponderación alguna, cuando todos sabemos que hay rasgos que "pesan" más que otros para evaluar cualquier cosa. Eso esmuy relevante cuando evaluamos algo para diseñar y construir software.

Con respecto a lo que comenta greeneyed acerca de Struts, coincido aun más. La utilidad de Struts 2, está demostrada inclusive en esta comparación. ¿Si no sirve para nada entonces para qué compararlo con lo que sirve?

Imagen de gabrielsimpsons

pues yo encuentro jsf2 bien,

pues yo encuentro jsf2 bien, no he probado el resto struts lo deje hace rato, gwt no me convence del todo

No veo punto para que entre struts

Creo que si por funcionaludades nos vamos Struts 1 no debería entrar al trapo...más bien creo que quien hizo ésta comparación seleccionó los frameworks más famosos.

En cuanto a funcionalidades no creo que se pueda comparar Struts 1 ni Struts 2 con Spring MVC 3. No digo que a día de hoy no tenga utilidad (aunque después de haber visto mejores cosas...), pero, ya pasó su momento.

Respecto a lo que pregunta @Algus Dark, mi respuesta sería Lift para Scala y Play! para Java (aunque para la 2.0 parece que ahora se aprovecharán mejor las bondades de Scala).

Imagen de Michel Zúñiga

Interesante

Todavía esoty vigente jejeje!, le muevo a JSF y Flex, aunqe ahora soy ABAP... :(