なんというか、型推論が無いとかそういう部分も置いといて、検査例外とかそういうシステムのせいもあるけども、全体的に冗長な記法になりやすいような気がします。入出力とかでもBufferdReaderとかScannerとか出てきて、もっと簡単に書けないのかよっていう。
その点、JVMで動くJavaじゃない言語とかも割りと多い印象。
Java
JVMの基本、Java。Java8あたりではラムダ式とかも取り込んで入るけど、やはり後方互換を意識しているためか、言語そのものが書きやすい方向には変化していないような気がする。環境によっては他の言語とかも動かないことがあるらしいので、その点ではJavaが一番安定?Scala
JVMで関数型プログラミング言語と言えばScala。Scalaは関数型プログラミング言語ではないという議論はさておき。型推論とかあるし、Haskellに比べると弱いかもしれないけど、関数型プログラミングの機能もある程度充実しているし、オブジェクト指向っぽくも書けるので、割りとやってみたさはある。コップ本は持ってるし。Clojure
Lisp on JVM。イミュータブルなデータとSTMなんかの機能が特徴?とりあえず勉強中ではあるけど、Javaのエコシステムあまり詳しくなかったりとか、ビルドシステムがよく分かっていないので、あまり進んでいない。Groovy
この言語、実はClojure、Scalaよりもあとに知ったんだけど、JVM上で動く動的型言語として有名らしい。Gradleという最近のJavaのビルドシステムとかでも使われているらしく、Javaのプロジェクトに携わるならやっておいて損はなさそう。JRuby, Jython
RubyやPythonのJVM実装。それぞれの言語を利用していて、かつJava系のツールとかが必要になった時に。Kotlin
最近知ったんだけど、Intellijで有名なJetBrainsが作った言語らしく、静的型の言語で、Javaよりも書きやすそう。Android開発にも普通に使えるらしいので、もしJavaが嫌いだけどAndroidやることになったときにいいかもしれない。AltJavaと言われる言語は多いけども、結局はJavaのライブラリやJVM周りの知識とかは必要になってくると思うので、そういう点でJava自体もある程度勉強していきたい。