Why are so many new languages written for the Java VM?

clojure, java, jvm, scala, sun

Solution

Why don't they write a new VM for a new language?

That one is easy:

- writing a good VM is hard

- writing a fast VM is hard

- making a VM run under multiple architectures is hard

- existing libraries work with existing VMs

- existing tools (debuggers, profilers, compilers, ...) work with existing VMs

- getting people to install a new VM is hard

- instant interoperability with other languages targeting the same VM

- existing VMs have been thoroughly tested in production

Problem

There are more and more programming languages (Scala, Clojure,...) coming out that are made for the Java VM and are therefore compatible with the Java Byte-Code. I'm beginning to ask myself: Why the Java VM? What makes it so powerful or popular that there are new programming languages, which seem gaining popularity too, created for it? Why don't they write a new VM for a new language?

Original source