an alternative to java is scala
I took a long look at java and carefully stepped over the steaming pile. It's much better now but still poor IMO; poor typing, clumsy & verbose syntax, many corner cases etc.
I recommend scala. Downside is performance is not great (compiler is notoriously slow), but it's far nicer to use and is mostly interoperable with java as it compiles to the JVM.
I hear good things about clojure too but I believe it has dynamic lispy typing, whereas scala's is static which I prefer (and before anyone kicks off about how 'restrictive' static typing is, just don't. Learn scala (or haskell) and you'll see what static typing done properly is like).