liste de compréhension, pour la compréhension.
par exemple en java vous écrivez:
int myVar;
if (condition) {
myVar = //some value
}
else {
myVar = //some other value
}
En scala, le même code est écrit de façon beaucoup plus élégante (comme python) que:
int myVar = (//some value) if (condition) else // other value;
Et.. Voila.
Scala offre tellement de choses que Java ne propose pas. Il n'y a tout simplement aucune comparaison. Le seul problème est que les gens sont plus familiers avec Java (b / c c'est ce qu'ils enseignent dans les classes CS) et pas aussi compétents avec le paradigme Scala.
Scala a une récursivité de queue, il peut retourner des tuples (quelque chose qui pourrait arriver dans Java 8 je pense).
Ce n'est pas une comparaison. Scala a été développé par Martin Ordersky, qui a travaillé sur l'équipe principale de Java Generics.
Scala est juste une langue bien supérieure. C'est tout ce qu'on peut en dire. Les gens qui disent le contraire n'ont tout simplement pas suffisamment exploré Scala pour en savoir plus.
Ci-dessus, je voulais dire l'optimisation de la récursivité de la queue (ce que la JVM ne peut pas faire comme le compilateur de Scala peut).
Scala compile et s'exécute également plus rapidement que les applications JVM (Oui, c'est vrai). Sans parler des cadres. Nous utilisons Tomcat par exemple et déployons quelques servelets pour gérer REST.
Une chose que Tomcat ne peut pas faire, ce sont les opérations asynchrones qui nécessitent des E / S non bloquantes. Pour cela, les développeurs JAVA ont généralement inventé une solution de contournement à l'aide d'une file d'attente de messages (envoyez le message à la file d'attente, et un autre processus ou thread le récupère et fait ce que vous voulez en arrière-plan).
Malheureusement, cette méthode est cr * p, et un hack sur les limitations du déploiement des servlets Java sur Tomcat.
Allez voir akka + spray. Il utilise les acteurs de scala (les acteurs sont comme les threads, sauf que la seule façon de communiquer est par le biais de messages).
Et maintenant, les appels REST asynchrones sont faciles. Tâche d'arrière-plan de longue durée? Aucun problème. Il suffit de tirer et d'oublier, et de faire des sondages REST pour vérifier son état depuis le front-end de temps en temps.
Si vous utilisez toujours Java et pensez que c'est mieux que scala, vous pourriez tout aussi bien cesser d'utiliser votre ordinateur pour taper et revenir à l'époque des plumes d'oie et de l'écriture aux chandelles. Java est fondamentalement antédiluvien par rapport à Scala.