Я вижу здесь, что есть масса языков, кроме Java, которые запускаются на JVM. Я немного смущен всей концепцией других языков, работающих в JVM. Итак:
В чем преимущество наличия других языков для JVM?
Что требуется (в терминах высокого уровня) для написания языка/компилятора для JVM?
Как вы пишете/компилируете/запускаете код на языке (отличном от Java) в JVM?
РЕДАКТИРОВАТЬ: Были ответы на 3 вопроса (изначально комментарии), на которые был дан ответ в принятом ответе. Они перепечатываются здесь для удобочитаемости:
Как приложение, написанное, скажем, JPython, взаимодействует с Java-приложением?
Кроме того, может ли приложение JPython использовать любую из функций/объектов JDK?
Что, если это был код Jaskell, будет ли факт, что это функциональный язык, не делает его несовместимым с JDK?