1. Программирование на скале не принуждает писать код в другом стиле, большая часть кода остаётся такой же ,как была и имеет тот же смысл
2. Программирование на скале не обязывает переписывать сразу весь продукт, можно добавлять кусочки, реализованные в TF стиле в готовое приложение
3. Программирование на скале улучшает тестируемость, т.к. форсит IoC подход
4. Программирование на скале делает психологически некомфортным плохо модуляризированный код, выставляя наружу все зависимости, что двигает разработчиков в сторону разделения кода на ортогональные концепты, это положительно влияет на способность локализовывать баги, разрабатывать не мешая друг другу и т.п.
5. Программирование на скале улучшает переиспользуемость компонент, многие части требуют 0 усилий, чтобы стать частью внутренней библиотеки компании, это сокращает расходы на разработку в мультикомандной компании
6. Программирование на скале добавляет новые операции над компонентами, добавляя новые способы преобразовывать и композировать их, что позволяет разделить реализации на ещё более атомарные аспекты, выделить логирование, метрики, пост-обработки, верификации в отдельные части, не вводя новых абстракций, что снова улучшает модуляризацию, см. пункт 4
7. Программирование на скале позволяет добавлять новые автоматизированные решения, анализируя форму трейта, что позволяет ещё сильнее улучшить продуктивность