список розуміння, для розуміння.
наприклад у java ви пишете:
int myVar;
if (condition) {
myVar = //some value
}
else {
myVar = //some other value
}
У scala, той самий код, написано набагато елегантніше (як python), як:
int myVar = (//some value) if (condition) else // other value;
і зробили.
Там так багато, що Scala пропонує, що Java ні. Просто немає порівняння взагалі. Єдина проблема полягає в тому, що люди більше знайомі з Java (це те, чого вони навчають у класах CS) і не настільки кваліфіковані з парадигмою Scala.
У Scala є хвоста рекурсія, вона може повертати кортежі (те, що може бути в Java 8, я думаю).
Це не порівняння. Scala був розроблений Мартіном Ордерським, який працював над основною командою для Java Generics.
Скала - це просто набагато перевершена мова. Це все, що там є. Люди, які говорять інакше, просто не вивчили Скалу, щоб знати краще.
Вище я мав на увазі сказати оптимізацію хвостової рекурсії (яку JVM не може зробити так, як зможе компілятор Scala).
Також Scala збирає та працює швидше, ніж програми JVM (Так, це правда). Не кажучи вже про рамки. Наприклад, ми використовуємо Tomcat і розгортаємо кілька сервлетів для обробки REST.
Одне, що Tomcat не може зробити, - це асинхронні операції, які вимагають не блокувати введення-виведення. Для цього розробники JAVA зазвичай винайшли вирішення за допомогою черги повідомлень (надішліть повідомлення в чергу, а якийсь інший процес або потік підбирає його та робить все, що завгодно у фоновому режимі).
На жаль, цей метод є cr * p, і хак через обмеження розгортання сервлетів Java на Tomcat.
Ідіть перевірити акку + спрей. Він використовує "Актори скали" (Актори так само, як нитки, за винятком єдиного способу спілкування - через повідомлення).
Асинхронні REST-дзвінки зроблено легко. Довго працююче фонове завдання? Без проблем. Просто стріляйте і забудьте, і зробіть декілька REST-опитувань, щоб перевіряти його стан від переднього кінця раз у раз.
Якщо ви все ще використовуєте Java і вважаєте, що це краще, ніж скала, ви можете також перестати користуватися комп’ютером для набору тексту та повернутися до часів ручки для писання та написання при свічках. Java в основному допотопний порівняно зі Scala.