zrozumienie listy, do zrozumienia.
na przykład w java piszesz:
int myVar;
if (condition) {
myVar = //some value
}
else {
myVar = //some other value
}
W scala ten sam kod jest napisany o wiele bardziej elegancko (jak python) jak:
int myVar = (//some value) if (condition) else // other value;
i zrobione.
Scala oferuje tyle możliwości, że Java nie. Po prostu w ogóle nie ma porównania. Jedynym problemem jest to, że ludzie są bardziej zaznajomieni z Javą (b / c tego uczą na lekcjach CS) i nie są jeszcze tak wykwalifikowani w paradygmacie Scali.
Scala ma rekurencję ogona, może zwracać krotki (myślę, że może to być w Javie 8).
To nie ma porównania. Scala została opracowana przez Martina Ordersky'ego, który pracował w głównym zespole Java Generics.
Scala jest po prostu o wiele lepszym językiem. To wszystko. Ludzie, którzy twierdzą inaczej, po prostu nie zbadali Scali na tyle, by wiedzieć lepiej.
Powyżej chciałem powiedzieć o optymalizacji rekurencji ogona (czego JVM nie może zrobić w sposób, w jaki może kompilator Scali).
Scala także kompiluje i działa szybciej niż aplikacje JVM (Tak, to prawda). Nie wspominając o ramach. Korzystamy z Tomcat na przykład i wdrażamy niektóre serwulety do obsługi REST.
Jedną rzeczą, której Tomcat nie może zrobić, są operacje asynchroniczne, które wymagają nieblokujących operacji we / wy. W tym celu programiści JAVA zwykle wymyślili obejście za pomocą kolejki komunikatów (wyślij wiadomość do kolejki, a inny proces lub wątek odbierze ją i zrobi wszystko, co chcesz w tle).
Niestety, ta metoda to cr * p i włamanie do ograniczeń we wdrażaniu serwletów Java na Tomcat.
Idź sprawdź akka + spray. Korzysta z aktorów scali (aktorzy są jak wątki, z wyjątkiem, że jedynym sposobem, w jaki mogą się komunikować, są wiadomości).
I gotowe, asynchroniczne wywołania REST są łatwe. Długotrwałe zadanie w tle? Nie ma problemu. Po prostu odpal i zapomnij i raz na jakiś czas wykonaj odpytywanie REST, aby sprawdzić jego status z interfejsu.
Jeśli nadal używasz Javy i uważasz, że jest lepsza niż Scala, równie dobrze możesz przestać używać komputera do pisania i wrócić do czasów długopisów i pisania przy świecach. Java jest w zasadzie przedpotopowym w porównaniu ze Scalą.