Je ne sais pas pour Kotlin, mais Scala et Xtend sont deux bêtes très différentes.
Contrairement aux dictons courants, Scala n'est PAS un meilleur Java. Scala est un langage beaucoup plus en vedette que Java, avec sa propre syntaxe et sémantique, et son propre pack de bibliothèques de base.
Xtend EST un meilleur Java. Il conserve la sémantique Java et améliore sa syntaxe. Chaque ligne de code Xtend peut être directement traduite en un tas de lignes de code java. Il n'y a pas non plus d'exécution supplémentaire.
Je pense que les deux approches sont bonnes, bien que différentes. Je n'aime pas Scala (en tant que langue), mais je n'aime pas avoir des pots Scala ajoutés à mes projets. Je ne peux pas utiliser Scala correctement dans Android non plus (cela ajoute des problèmes de poids et de performances). Xtend n'est pas autant présenté, mais c'est ok pour moi (ça vaut le coup de l'utiliser que le langage Java) et il fonctionne sur toutes les plateformes comme si j'écrivais directement en Java.
Je crois que les deux langues couvrent des niches différentes et peuvent coexister sans interférer l'une avec l'autre. À mon humble avis, Scala est tout simplement trop complexe, n'ajoutant rien de nouveau. Si vous voulez devenir plus fonctionnel et moins OO, choisissez simplement l'un des nombreux langages fonctionnels plus simples, comme Clojure ou JHaskell. Si vous voulez juste Java avec une meilleure syntaxe et un peu de programmation fonctionnelle, Fantom serait aussi bon que Scala (il ressemble beaucoup à C #).
Mais je trouve que Xtend est à un point doux entre toutes ces langues. Il ajoute tous ces modèles syntaxiques que je voulais pour Java, en gardant les bonnes parties de Java (sa sémantique). Pensez-y comme Coffescript pour Java.
Et le support Eclipse est superbe ...