Usar varios lenguajes JVM en el mismo proyecto

Me gustaría utilizar Kotlin & Scala juntos en proyectos, y tal vez en otros idiomas, pero no he visto una buena manera de hacerlo. La única forma en que pensaba era en comstackr un idioma y descomstackrlo en Java para trabajar con el otro. ¿Hay alguna alternativa?

Solutions Collecting From Web of "Usar varios lenguajes JVM en el mismo proyecto"

Puede usar Scala y Java simultáneamente, ya que Scalac entiende y comstack los files Java. Lo mismo probablemente sea válido para otros idiomas. Pueden popup problemas al usar múltiples lenguajes JVM alternativos, ya que, por ejemplo, el comstackdor de Kotlin probablemente no puede entender los files de Scala y viceversa.

Creo que la mejor manera sería dividir el proyecto en diferentes modules y usar como máximo un idioma alternativo por module.

¿Qué quiero decir con module ?

Con el module , me refiero a un set de files fuente que se traduce en un artefacto (binary), es decir, un file jar. Bajo diferentes circunstancias, simplemente llamaría a un "module" un proyecto. Tenga en count que un module puede depender de otros modules en el nivel binary (por ejemplo, tiene algunos files jar como dependencies).

Soporte de modules múltiples en IDEs

Creo que debería ser posible que la mayoría de los principales IDE trabajen en diferentes modules simultáneamente, incluso si cada module usa un idioma diferente. La terminología varía en todos los IDEs.

Terminología

Para Intellij IDEA, uno de mis modules se llama "module". Para Eclipse se llamaría "proyecto".

Por el bien de completar y no poner palabras en la boca de otra persona, quería pesar.

Estoy de acuerdo con la última oración de la respuesta de ziggystar . Lo correcto es tomar un enfoque basado en componentes y no tratar de combinar múltiples idiomas en un componente o proyecto.

Desde una perspectiva técnica, cada uno de los lenguajes JVM tiene su propio comstackdor. Algunos, como el de Scala, pueden comstackr tanto files Scala como Java. Sin embargo, esto puede o no ser cierto para otros comstackdores. Para evitar processs de construcción extraños, un buen enfoque sería usar un solo idioma para cada module construido.

Como se apega a los lenguajes JVM, todos los idiomas se pueden comstackr en un JAR, por lo que puede distribuir fácilmente el file binary ejecutable como un único file JAR, con todos los componentes incluidos. Este es el enfoque Fat JAR (vea esta pregunta en Stack Overflow , esta publicación en Java Code Geeks ).

Desde una perspectiva de legibilidad humana, esto también debería hacer que tu software sea más fácil de entender. No solo lo ha descompuesto en bloques de construcción lógicos (cada componente), sino que alguien que hace modificaciones solo necesita comprender el lenguaje en el que está escrito el componente en el que están trabajando y la interfaz pública de los componentes con los que necesitan interactuar. No hay un cambio de context mental entre idiomas.