¿Por qué debería elegir Java (especialmente Spring Framework) para el desarrollo web?

No necesitas hacerlo.

Elegir el idioma apropiado depende de muchos factores como:

  • la definición del problema
  • la habilidad establecida en su organización
  • El ecosistema existente en su organización
  • el IDE y las herramientas que se utilizan
  • La filosofía de la organización (Windows vs Linux Shop vs código abierto, etc.)
  • proveedores en la nube
  • requisitos de rendimiento y muchas cosas más.
  • Arquitectos cambiantes de paradigma, etc.
  • Visión a largo plazo y dirección de la organización.

En base a los factores anteriores, si ha encontrado contextualmente el mejor ajuste para ser Java, entonces hágalo.

Si no, puede ser un buen ciudadano y proponer idiomas alternativos que resuelvan mejor el problema, con datos objetivos .

Y digamos que finalizó en Java, luego puede repetir el mismo ejercicio con marcos que involucran Java. (solo la evidencia empírica le dirá que Spring es uno de los marcos más poderosos y de resolución de problemas para Java)

Es un punto de datos, pero puede no ser un punto de decisión 100% para usted. Siéntase libre de explorar otras opciones como Google Guice, Dagger 2 para DI, etc. y Spring para MVC, o incluso la puerta de enlace API de AWS para eliminar un marco web por completo.

  • Si tu conjunto de habilidades interno es java
  • Si el requisito de destino es una aplicación web grande
  • Si el tamaño del equipo es de 4 o más personas
  • Si la aplicación estará disponible por algún tiempo y requiere modificaciones continuas
  • Si es un producto que necesita implementarse en múltiples plataformas
  • Si necesita acceso a una amplia variedad de proyectos de código abierto

Si algo o todo lo anterior es cierto, entonces Java y Spring pueden tener sentido. Java se adapta bien a proyectos grandes, es fácil conseguir desarrolladores con habilidades en Java y primavera y hay una gran variedad de proyectos de código abierto disponibles. Mi experiencia con proyectos más grandes de Java es que primero construye su entorno de desarrollo incorporando un conjunto básico de código abierto y los marcos necesarios (Spring, maven, gradle, Junit, TestNG, Hibernate, Apache commons, …) Luego, determina qué módulos de aplicación tiene, cuáles son las API entre los módulos y luego superponga los módulos, si corresponde, en acceso a datos, servicios, vistas. Luego, decida si las dependencias de los módulos serán API (micro servicios REST) ​​o frascos compartidos compartidos. Kotlin también puede ser un serio contendiente. No lo he usado para un proyecto más grande, pero parece corregir parte de la verbosidad de Java.

Si el proyecto es una solución de punto táctico pequeño, Perl o PHP podrían ser la mejor opción.

Esto, por supuesto, si la respuesta abreviada a la pregunta. Sin aclaraciones, podría escribir un libro sobre sus opciones.

Debido a que Spring Framework es la forma más sencilla de desarrollar aplicaciones java empresariales y la última versión del marco le permite crear aplicaciones escalables con un negocio fácil como ningún otro.

Por último, lo más importante es que Spring tiene una gran cantidad de proyectos para todos los niveles de aplicaciones empresariales en casi todos los aspectos de la especificación Java EE, la implementación del proyecto Spring tiene una mejor alternativa de hacer lo mismo en comparación con JEE.

Como beneficio adicional, Spring proporciona una forma ágil para el desarrollo de software, ya que es fácil de aplicar los enfoques TDD, ya que el marco proporciona herramientas fáciles de usar para respaldar el aseguramiento de la calidad del código, como las pruebas adecuadas, también le brinda una forma de probar incluso sus controladores y, desde la pregunta se refiere a la pila web, entonces una forma en que un marco que le proporciona una forma más natural y elegante de probar los controladores web es siempre la mejor.

Eso es lo que tengo para Spring Framework en comparación con JEE.

No hay absolutamente ninguna razón por la que deberías.

Cualquier lenguaje / marco puede hacer lo que Java / Spring puede hacer, así que quédese con el lenguaje que conoce, aprenda su marco para el desarrollo web.

La ventaja de los consejos anteriores es la facilidad de desarrollo, ya está familiarizado con el lenguaje subyacente, su velocidad de desarrollo aumentará enormemente y sabrá cómo resolver los problemas más rápido.

¿Te gustan los sistemas que tienen varios cientos de fregaderos de cocina? ¿Entonces le gustaría tener varias capas simplificadoras construidas sobre el primer sistema increíblemente complejo? ¿Y luego te gusta tener mensajes de error increíblemente obtusos que son imposibles de entender debido a la complejidad?

Si es así, te encantará la primavera. Y luego está Spring Boot, que es otro sistema complejo en capas sobre el resto del sistema complejo.

Spring, Hibernate, Spring Boot, etc., fueron diseñados para agregar simplicidad a Java EE. Pero, cuando empapelas la complejidad, simplemente haces más complejidad.

¿Cómo se compara Node.js con una plataforma MVC tradicional como Spring?

Usted no … Excepto que solo conoce JAVA en este momento y no obtendrá un recorrido rápido por nada más.