Si un sitio web está construido con Java, ¿podemos agregar un módulo que consista en otros idiomas?

Sí, esto es bastante fácil de hacer y hay una gran cantidad de mecanismos para hacerlo:

  1. Si el lenguaje se compila a bytecode JVM, por ejemplo, Scala, puede llamarlo directamente desde su código Java con poca o ninguna impedancia.
  2. Si el idioma tiene un intérprete escrito en java, simplemente use el intérprete para ejecutarlo. Por ejemplo, Java tiene un intérprete de JavaScript que le permite ejecutar JS desde Java. Lo mismo se aplica a muchos otros lenguajes, como Python.
  3. Si el módulo se compila en código nativo, por ejemplo, si está escrito en C o C ++, puede usar JNI.
  4. Si el módulo está escrito en un lenguaje para el que no existe un intérprete de Java, las cosas se ponen interesantes:
    1. Puede activar una instancia del intérprete por separado, hacer que exponga un puerto TCP / IP y simplemente llamarlo a través del puerto. Una forma divertida de hacer esto es usando gRPC.
    2. Puede exponer un microservicio local o remoto utilizando REST.
    3. Puede aumentar las colas entre procesos para habilitar las comunicaciones asíncronas.
    4. Puede escribir datos en el almacenamiento compartido y usar cron para habilitar el procesamiento por lotes / ETL.

Las opciones son infinitas y todas dependen exactamente de lo que quieres hacer.

Si se utilizan servicios micro, todas las funciones podrían implementarse en un idioma diferente. No estoy convencido de que hacer todos los servicios como un idioma diferente sea una buena idea, pero podría hacerlo.

Si no está utilizando microservicios, puede iniciar o utilizar cualquier lenguaje dirigido a la JVM. Los populares incluyen Scala, Groovy y Koltin.

Sí. Ejemplo de sitios web (aplicaciones web empresariales complejas) twitter, linkedin, amazon.

A través de Java API podemos agregar módulos de otros idiomas.