lista comprensione, per comprensione.
per esempio in Java scrivi:
int myVar;
if (condition) {
myVar = //some value
}
else {
myVar = //some other value
}
In scala, lo stesso codice, è scritto molto più elegantemente (come Python) come:
int myVar = (//some value) if (condition) else // other value;
e fatto.
C'è così tanto che Scala offre che Java non lo fa. Semplicemente non c'è nessun confronto. L'unico problema è che le persone hanno più familiarità con Java (questo è ciò che insegnano nelle classi CS) e non ancora abili con il paradigma Scala.
Scala ha una ricorsione della coda, può restituire tuple (qualcosa che potrebbe arrivare in Java 8 credo).
Non c'è paragone. Scala è stata sviluppata da Martin Ordersky, che ha lavorato nel core team di Java Generics.
Scala è solo un linguaggio di gran lunga superiore. Questo è tutto quello che c'è da fare. Le persone che dicono il contrario semplicemente non hanno esplorato Scala abbastanza per conoscerlo meglio.
Sopra, intendevo dire l'ottimizzazione della ricorsione della coda (che la JVM non può fare come può fare il compilatore di Scala).
Scala inoltre compila e funziona più velocemente delle app JVM (Sì, è vero). Per non parlare dei quadri. Usiamo Tomcat per esempio e distribuiamo alcuni servel per gestire REST.
Una cosa che Tomcat non può fare, sono le operazioni asincrone che richiedono I / O non bloccanti. Per questo, gli sviluppatori JAVA hanno in genere inventato una soluzione alternativa utilizzando una coda di messaggi (invia il messaggio alla coda e alcuni altri processi o thread lo raccolgono e fanno quello che vuoi in background).
Sfortunatamente, questo metodo è cr * p e un hack per i limiti della distribuzione di servlet Java su Tomcat.
Vai a dare un'occhiata a Akka + spray. Utilizza gli attori di Scala (gli attori sono proprio come i thread, tranne che l'unico modo in cui possono comunicare è attraverso i messaggi).
E fatto, le chiamate REST asincrone hanno reso facile. Attività in background di lunga durata? Nessun problema. Basta sparare e dimenticare, ed eseguire alcuni sondaggi REST per controllare lo stato dal front-end di tanto in tanto.
Se stai ancora usando Java e pensi che sia meglio di Scala, potresti anche smettere di usare il tuo computer per scrivere e tornare ai giorni delle penne d'oca e scrivere a lume di candela. Java è fondamentalmente antidiluviano rispetto a Scala.