According to Wikipedia,
A Java Virtual Machine (JVM) is a set of computer software programs and data structures which implements a specific virtual machine model. This model accepts a form of computer intermediate language, commonly referred to as Java bytecode, which conceptually represents the instruction set of a stack-oriented, capability architecture. This code is most often generated by Java language compilers, although the JVM can also be targeted by compilers of other languages.
This clearly indicates that any programming language that has a compiler that can produce Java bytecode can be used to write programs that run on the JVM.
In addition to the Java programming language, Robert Tolksdorf has created an exhaustive list of around 200 other programming languages that can be used to write programs that run on the JVM. The ones that I am interested in currently are (in alphabetical order):
- JRuby (aka Ruby on the JVM)
- Jython (aka Python on the JVM)
- SISC (aka Scheme on the JVM)
Personally, as a fan of Ruby, I am watching JRuby very closely.
Which one do you want to watch today? :-)