D'abord nous aurons besoin de savoir quels sont vos besoins! Parce que la plupart des choses que vous posez sont déjà répondues dans les liens de l'article de Wikipédia.
Modifier: après votre reformulation de la question, je suppose que votre objectif principal est d'avoir du plaisir avec la programmation d'une nouvelle langue ...
Je pense un langage dynamique comme Groovy ou Jython sera plus drôle à utiliser, car vous pouvez vous familiariser plus rapidement et voir les résultats de ce que vous faites immédiatement dans l'interprète. Personnellement, je préfère Jython parce qu'il est basé sur Python (en fait, c'est Python, mais un peu dépassé), mais je dois admettre que Groovy est plus étroitement couplé avec le JRE, il est plus syntaxiquement similaire à Java et pourrait donc être mieux option.
Si vous voulez changer un peu votre façon de penser (en supposant que vous avez un contexte procédural/impératif, comme la plupart des gens), alors je vous recommande de Scala, Clojure, SISC ou Armed Bear CL (ces deux derniers ne sont pas dans la liste Wikipédia).
Aussi je pense qu'il vaut la peine de garder un oeil sur Fortress, qui pourrait être le prochain "Big One" langage pour la JVM ... Je ne l'ai pas regardé depuis longtemps, mais maintenant il semble qu'il est déjà prêt à télécharger, construire par vous-même et tester. Si vous voulez vraiment vous amuser, peut-être que ce sera la meilleure option, car il a des "fonctionnalités vraiment géniales" (comme écrire des expressions mathématiques en format LaTeX qui sont en fait analysées par le compilateur et utilisées pour imprimer la documentation) et vous serez constamment surpris par les changements à venir, car c'est un langage en développement actif.
Connexes: http://stackoverflow.com/questions/821105/fonctions-langues-fonctionnelles-erlang-f-haskell-scala –