Сначала нам нужно знать, в чем ваши потребности!
Потому что большинство вещей, о которых вы просите, уже ответили в ссылках из статьи в Википедии.
Edit: после переформулирование вопроса, я полагаю, что ваша главная цель состоит в том, чтобы весело провести время программирования с новым языком ...
Тогда я думаю, что динамический язык, как Groovy или Jython будет смешнее использовать, так как вы можете быстрее получить руки и увидеть результаты того, что вы делаете сразу в интерпретаторе. Лично я предпочитаю Jython, потому что он основан на Python (на самом деле это Python, но немного устарел), но я должен признать, что Groovy более тесно связан с JRE, он более синтаксически похож на Java и, следовательно, может быть лучше вариант.
Если вы хотите изменить немного свой образ мышления (если у вас есть процедурный/императив фон, как и большинство людей), то я рекомендую вам Scala, Clojure, SISC или Armed Bear CL (те два последних не входят в список Википедии).
Также я считаю, что стоит следить за Fortress, что может быть следующим «большим» языком для JVM ... Я не смотрел на него в течение длительного времени, но теперь кажется, что это уже готовый к загрузке, самостоятельно строить и тестировать. Если вы хотите получать удовольствие, возможно, этот вариант станет лучшим вариантом, потому что он имеет «действительно классные функции» (например, написание математических выражений в форматировании, подобном LaTeX, которые фактически разбираются компилятором и используются для точной печати документации) и вы будете постоянно поражены предстоящими изменениями, поскольку это язык активного развития.
Связанный: http://stackoverflow.com/questions/821105/functional-languages-erlang-f-haskell-scala –