Je viens de terminer un prototype à l'aide de Jouer avec Java et maintenant j'envisage d'apprendre Scala juste pour que je puisse passer pour le développement ultérieur.
Ce n'est pas seulement le Java vs Scala de discussion - le problème que je vois avec le Jeu-cadre est qu'il oblige Scala idiomes sur Java. Un exemple tiré de la documentation à propos de l'appel de plusieurs services web:
public static Result feedComments(String feedUrl) {
return async(
WS.url(feedUrl).get().flatMap(
new Function<WS.Response, Promise<Result>>() {
public Promise<Result> apply(WS.Response response) {
return WS.url(response.asJson().findPath("commentsUrl").get().map(
new Function<WS.Response, Result>() {
public Result apply(WS.Response response) {
return ok("Number of comments: " + response.asJson().findPath("count"));
}
}
);
}
}
)
);
}
Il fonctionne, mais n'a pas l'air comme des classiques de Java. Ces parenthèses vraiment me faire peur. Eclipse ne sait jamais ce que les génériques j'ai besoin ou envie de l'utiliser, j'ai toujours eu à les choisir manuellement.
Notez également que dans la documentation il a l'air assez en supprimant @Override
des annotations, en utilisant seulement deux espaces pour l'indentation et de l'ensemble de choix d'un exemple très simple sans validation ou de reprise sur erreur, donc ils n'utilisent pas trop plusieurs lignes. Dans la pratique, j'ai fini avec un bloc illisible d'une horrible Java Scala-abomination juste pour obtenir des données à partir d'un autre service.
Je ne suis même pas sûr que vous pourriez configurer un formateur de code à la sortie comme ça, sans déconner autres code complètement.
Malheureusement, je ne peux pas trouver un exemple de combinaison de réponses à Scala. À moins d'appel unique des services web en Scala est beaucoup plus court et plus facile à lire.