JRuby: for people who realize the Ruby interpreter isn’t that hot performancewise or –more likely– whose sysadmins refuse to deploy anything but
jar files. Vaguely useful in case you absolutely require a Java library for a script that involves opening a file, parsing xml, printing to the screen, adding two `byte`s or something similarly impossible to do in Java without becoming so enraged that you end up twisting some cute little animal’s head off.
Jython: see JRuby
Groovy: for hardcore Java nerds who don’t want to admit to themselves that Java isn’t the be-all end-all of programming by resorting to JRuby or Jython. Because for unknown reasons, groovy is somehow “more” Java.
Scala: for people who feel Java isn’t special enough for them, because they’re very special. Yet they’re too limp dicked to use haskell or erlang. In all honesty, they would prefer to use ocaml, but the JVM handles cache line optimization in Intel’s upcoming Larabee architecture better and they need to squeeze every last bit of performance out of their “boxen”. They also enjoy using important words like “contravariant” that noone including themselves understands. This makes them feel even more special.
Fantom: see Scala, add: for who Scala is too mainstream because Twitter and one other company allegedly used it a some point.
Clojure: see Scala, but switch “scheme or lisp” in for “haskell or erlang”, feeks slightly less absurd than Scala to me.
JavaFX: sadomasochists with a serious Sun Microsystems fetish who have wet dreams of Duke™ (the little java dude) gnawing their balls off. They also really hate Flash and want to stick it to Adobe. But they haven’t heard that Adobe discontinued it or that you can do “mouseover” effects in HTML5 thus enabling Rich Internet Applications™ without Applets™.
All of the other JVM languages are either someone’s uni dissertation or total bullshit. Except for Frink which is pretty awesome but not really a general purpose programming language.
That said, Java is a really annoying language, but so are all other computer languages that don’t live in the JVM to some degree. It’s perfectly possible to write solid and useful code with it.
(this rant originally posted by me here. I updated it with a link to cute animals and frink)