¿Por qué Java es tan popular para el desarrollo web incluso si los frameworks web Java tienen tantos defectos?

La pregunta es desagradable. Si te gusta Python, solo úsalo. Si su empresa no le permite usar Python y le importa tanto, vaya a una empresa diferente. O use JPython en la JVM 😉

En cuanto a sus puntos específicos:

  • Struts tiene 14 años. JSP tiene 15 años. Estos son bloques de construcción bastante antiguos, pero sí, aún podría usarlos si quisiera.
  • La primavera es grande. Esto se debe a que está diseñado para hacer muchas cosas y, a menudo, para hacer cosas grandes.
  • Java admite la implementación en caliente. La JVM tiene la capacidad de recarga de código (que es un tema complejo en sí mismo), y existen herramientas especializadas (consulte la página de inicio de ZeroTurnaround) para automatizar las actualizaciones en caliente de los servidores en ejecución.
  • Los JSP admiten datos y separan vistas. Estaba usando JSP en 1999 en una arquitectura MVC, con bibliotecas de etiquetas JSP autogeneradas que representan el modelo (POJO) a la vista (JSP). El hecho de que algunas personas pongan toda su lógica de modelo y controlador en sus JSP no significa que los JSP sean malos; solo significa que son malos programadores.

Java no es ligero como PHP, pero para una aplicación seria, no hay mejor opción.

En aras de la divulgación completa, trabajo en Oracle. Las opiniones y opiniones expresadas en esta publicación son mías y no reflejan necesariamente las opiniones u opiniones de mi empleador.

Primero, muchas grandes compañías lo usaron, como google, amazon, alibaba …;

Segundo, muchos desarrolladores usaron Java, eso significa que el reclutamiento es conveniente;

En tercer lugar, muchos marcos de código abierto pueden usar, y son muy maduros;

Cuarto, Java es un lenguaje estático, se ejecuta más rápido que Python.

Finalmente, siento que Golang es un lenguaje futuro, tiene la ventaja de Java y Python.

Como varios carteles han señalado, a menudo regresa a la JVM y se ha comprobado su escalabilidad y operatividad.

Realmente depende del espacio de tu problema. Las herramientas que usa para construir un cobertizo de herramientas no son las mismas que usa para construir una casa de marco único ni un rascacielos a pesar de que todas tienen paredes, puertas y techos.

Creo que todo se reduce a JVM, y Java está respaldado por una gran comunidad de desarrolladores y muchas compañías de software.