Scala - лучшая статическая типизация на JVM.
Это результат усовершенствованной системы типов Scala, ортогональности функций, способа ее написания, позволяющего беспрепятственно расширять его с помощью библиотек, и простой интеграции с существующим кодом Java.
Я мог бы составить список этих функций, но без знания языка это было бы бессмысленно. Я мог бы сказать, что у Scala есть декларация отклонения на месте определения с правильным применением, но как можно измерить это, не испытав этого?
В результате, однако, код, написанный на Scala, быстрый, компактный, надежный и указывает на суть проблемы. Это также действует на всех уровнях, поэтому библиотеки Scala тоже такие.
Давайте немного поговорим об альтернативах здесь, чтобы прояснить различие.
Существуют языки, не относящиеся к JVM, но решение о том, переходить на язык JVM или нет, практически полностью отделено от решения о самом языке. Это технологическое решение, которое должно быть принято до выбора языка. Поэтому я сравниваю только Scala с другими языками JVM.
Большинство других языков JVM динамически типизированы. Хотя существуют факторы, которые следует учитывать при выборе между динамически типизированными и статически типизированными языками, тот, который действительно имеет значение в конце, - это личные предпочтения. В противном случае просто обратитесь к одному из многих ресурсов о динамически типизированных и статически типизированных языках.
Что касается статически типизированных языков в JVM, Scala имеет самую продвинутую систему типов. На самом деле, насколько я знаю, он почти один 1 в том, чтобы иметь систему типов, которая вдохновлена реальной теорией систем типов, а не взломана вместе на основе предпочтений и опыта разработчика языка.
Например, в Java нет безопасного отклонения. Другие языки идут противоположным путем в Scala, предоставляя «наиболее распространенные» структуры данных в самом языке и делая невозможным для кого-либо писать другие сложные структуры данных в виде библиотек.
Итак, если вы выбираете JVM и статически типизированы, и у вас есть возможность выбора языка, то Scala - лучший язык для этого проекта, каким бы он ни был.
Сноска
- Я изначально писал, что других не было. Теперь, заметьте, я был бы очень рад оказаться ошибочным и перечислить здесь любые исключения из этого правила. До сих пор я мог думать только о Крепости .