Más o menos . Java, si bien es un lenguaje obsoleto, cuenta con un enorme apoyo de compañías como Google, Twitter y Facebook. Las bibliotecas como Guava y Spring Boot proporcionan los engranajes necesarios para reunir aplicaciones grandes y altamente concurrentes con configuraciones complejas, dependencias y requisitos de registro / monitoreo.
Además, el corazón de Internet, el conjunto de plataformas de código abierto Apache, está escrito casi exclusivamente en Java o en lenguajes JVM. Todo, desde Cassandra hasta Apache Spark, se ejecuta en la máquina virtual Java.
Ahora. Una advertencia:
- ¿Cómo puedo registrar acciones (clics, etc.) que los usuarios realizan en una aplicación web AJAX?
- ¿Qué pila de tecnología se debe usar para una aplicación web escalable?
- ¿Cuáles son las herramientas 'imprescindibles' para el desarrollo web?
- ¿Cuáles son los pros y los contras de usar Coffeescript para las aplicaciones del lado del servidor Node.js?
- ¿Cómo haría alguien para descargar cada imagen en la web?
Lo que realmente está sucediendo en la industria es que muchos de nosotros estamos abandonando Java en masa por más sistemas políglotas donde se implementa el lenguaje apropiado para la tarea en cuestión.
Honestamente, implementar servicios RESTful en Java es un dolor gigantesco. El lenguaje no es adecuado para servicios muy ágiles, rápidos y muy simples. Tiene un sistema de compilación incómodo y extremadamente complicado (¿alguna vez tuvo que ir y configurar el sombreado en maven? ¿O lidiar con varias dependencias opcionales y conflictos de versión? Es un infierno). También es, como he mencionado, desactualizado irremediablemente debido a una gestión incompetente por parte de Oracle.
Entonces, para las reglas / flujo / sistemas computacionales altamente complejos, muchos de nosotros nos hemos mudado a Scala .
Para los servicios RESTful, muchos de nosotros estamos usando Python o JavaScript / Node .
Para los sistemas críticos de rendimiento, como las puertas de enlace, estamos utilizando Go o C ++ .
Todavía puede, sin duda, utilizar Java, pero la práctica recomendada actual es dividir su aplicación en pequeños servicios implementables de forma independiente que estén documentados utilizando un estándar como RAML o Swagger . Y, para implementar cada servicio utilizando las herramientas / idiomas que mejor se adapten a la tarea precisa en cuestión.
Bienvenido al salvaje oeste salvaje.