Listenverständnis, für das Verständnis.
In Java schreiben Sie zum Beispiel:
int myVar;
if (condition) {
myVar = //some value
}
else {
myVar = //some other value
}
In Scala ist derselbe Code viel eleganter geschrieben (wie Python) als:
int myVar = (//some value) if (condition) else // other value;
und fertig.
Es gibt so viel, was Scala bietet, dass Java nicht bietet. Es gibt einfach überhaupt keinen Vergleich. Das einzige Problem ist, dass die Leute mit Java besser vertraut sind (das ist es, was sie in CS-Kursen unterrichten) und noch nicht so gut mit dem Scala-Paradigma vertraut sind.
Scala hat eine Tail-Rekursion, es kann Tupel zurückgeben (etwas, das ich in Java 8 denke).
Es ist kein Vergleich. Scala wurde von Martin Ordersky entwickelt, der im Kernteam von Java Generics arbeitete.
Scala ist nur eine weit überlegene Sprache. Das ist alles dazu. Leute, die etwas anderes sagen, haben Scala einfach nicht genug erkundet, um es besser zu wissen.
Oben wollte ich Schwanzrekursionsoptimierung sagen (die die JVM nicht so ausführen kann, wie es der Compiler von Scala kann).
Scala wird auch schneller kompiliert und ausgeführt als JVM-Apps (Ja, das stimmt). Ganz zu schweigen von den Frameworks. Wir verwenden beispielsweise Tomcat und implementieren einige Servelets für die Verarbeitung von REST.
Eine Sache, die Tomcat nicht kann, sind asynchrone Vorgänge, die nicht blockierende E / A erfordern. Zu diesem Zweck haben JAVA-Entwickler in der Regel eine Problemumgehung mithilfe einer Nachrichtenwarteschlange erfunden (senden Sie die Nachricht an die Warteschlange, und ein anderer Prozess oder Thread nimmt sie auf und führt im Hintergrund die gewünschten Aktionen aus).
Leider ist diese Methode cr * p und ein Hack über die Einschränkungen der Bereitstellung von Java-Servlets auf Tomcat.
Gehen Sie Akka + Spray auschecken. Es werden die Schauspieler von Scala verwendet (Schauspieler sind wie Threads, mit der Ausnahme, dass sie nur über Nachrichten kommunizieren können).
Und fertig, asynchrone REST-Aufrufe leicht gemacht. Lang andauernde Hintergrundaufgabe? Kein Problem. Feuern Sie einfach und vergessen Sie, und führen Sie von Zeit zu Zeit ein REST-Polling durch, um den Status des Frontends zu überprüfen.
Wenn Sie immer noch Java verwenden und der Meinung sind, dass es besser ist als Scala, können Sie genauso gut aufhören, Ihren Computer zum Tippen zu verwenden, und zurück zu den Tagen der Federkiels und des Schreibens bei Kerzenlicht gehen. Java ist im Vergleich zu Scala im Grunde genommen ein Antidiluvianer.