Todo realmente depende de lo que estés construyendo y de cómo quieras construirlo.
Si va a construir un sitio web utilizando tecnologías basadas en Java, el viejo estándar de pantano será Spring. Spring, al contrario de lo mismo, es una bestia bastante grande y pesada con múltiples módulos a disposición de los desarrolladores. Si iba a construir una aplicación a gran escala (y tengo, de alguna manera) con Java, Spring es lo que voy a usar.
Pero, ¿qué pasa si quieres una aplicación de una sola página, algo un poco más pequeño, un poco más creativo?
- Como abogado, ¿tiene sentido una aplicación web para una experiencia de redacción de contratos más fácil?
- ¿Cuál es el mejor sistema SSO basado en la web?
- ¿Han fallado los widgets web del W3C?
- ¿Qué tan complicado es crear funcionalidades de reconocimiento de imágenes personalizadas en mi aplicación web? ¿Algún estadio sobre costos y tiempo?
- ¿Cómo puedo hacer una aplicación web que combine dos imágenes en una?
Ahí es cuando Java pierde un poco el vapor. Estoy seguro de que hay muchas alternativas Java más pequeñas (el marco de juego es uno), pero si estuviera haciendo algo más así, sugeriría mucho más rápido Rails, una pila MEAN, tal vez incluso Django.
Sin embargo, personalmente, si está creando una aplicación web, diría que el diseño de la base de datos y la elección del servidor deben tener prioridad sobre el idioma que elija: siempre puede rediseñar con un idioma diferente, pero su base de datos probablemente será similar independientemente del idioma tu eliges.
Moraleja de esta tangente: Java es un lenguaje maravilloso (algo aburrido para algunos), no es un zapato de múltiples tamaños. analizar sus requisitos y decidir sobre su pila de tecnología en función de eso.