>> А вот причин для использования Scala в проекте найти не могу. Можете ли пробежаться по основным характеристикам языка, с точки зрения практика?
Самый простой use-case - вам нужна платформа JVM, для решения определенных задач (вы хотите написать быстрый, NIO-сервер на Netty, поюзать, через родной API, Hadoop, или рашить любую другую сложную задачу, требующую мощности, ресурсов и библиотек JVM).
Реальные альтернативы на JVM - Java, Scala, Groovy и Clojure. Java - дефолтный вариант, с лучшей поддержкой IDE, но вызывающий приступы тошноты, и острой боли в запястьях у тех, , кто пришел из языков с хоть какой поддержкой ФП, удобной работой с коллекциями, динамическими типами (или выведением типов), миксинами, и т.п. Надо смотреть правде в глаза - Java сильно устаревший язык (посмотрите, хотя бы, насколько опережает джаву C#).
Groovy - язык с динамичкской типизацией и слабым перфомансом. Планировался, как альтернатива RoR на JVM. План провалился.
Clojure - для ценителей lisp.
Итого, остается Scala:
0. Перфоманс, аналогичный Java (см. бенчмарки Google)
1. Мощная система типов (слабее, чем у Haskell, сравнима с F#, и значительно круче, чем у всего мейнстрима). Живой пример крутизны системы типов scala, - возможность реализовать ее средствами union-type (одна из киллер-фич другого java-убийцы, Ceylon'a). При этом, в scala вполне пристойный вывод типов, сл-но, те, кто пришел из динамических языков, страдают от аннотаций типов не так сильно;
2. Сильная функциональаная составляющая (повзоляющиая писать "чистый", не простерлив себе ногу). См. scalaz - библиотека, позволяющая писать на scala, в чистом, haskell-подобном, стиле;
3. Имплициты (ститически-типизированный duck-typing), динамическое расширение функциональности библиотек, и мн. др.
4. Мультинаследование/миксины, и CDI из коробки
5. Удобные коллекции, и паттерн-матчинг
Минусы:
1. Поддержка в IDE, в сравнении с Java, намного слабее (особенно, дебаггер);
2. Если писать в pure стиле, генерится много коротко-живущего мусора (который, правда, эффективно подчищается современными GC);
3. Родные immutable коллекции достаточно медленные;
4. SBT, дефолтовый scala-билдтул, вызывает у новичков неподдельный ужас. Он по-настоящему сложный. Конечно, можно пользоваться вместо него javaвскими maven или gradle (что, с успехом, многие и делают), но рано или поздно, устав от тормознутости компилятора, неудобности работы с тестами, и пр., многие всё-равно переползают на SBT (с инкрементальной компиляцией, расширяемостью, continuous compilation/reload/whatever).
5. Мультипарадигмальность - и плюс, и минус. Scala настолько гибкая, что единого, хорошего стиля, не существует, и если его жестко не ввести в рамках одного проекта, будет хаос.