Исходя из Scala (и Akka), я недавно начал смотреть на другие языки, которые были разработаны с учетом распределенных вычислений, а именно на Erlang (и немного на Oz и Bloom). И Erlang, и Oz динамически типизированы, и, если я правильно помню (попытаюсь найти ссылку), люди пытались добавить типы в Erlang и им удалось ввести большую часть его, но не смогли успешно принудить систему, чтобы она соответствовала последний бит?
Оз, хотя язык исследований, безусловно, интересен мне, но он также динамически типизирован.
Текущая реализация Bloom находится на Ruby и, следовательно, динамически типизирована.
Насколько мне известно, Scala (и я полагаю, что Haskell, хотя я считаю, что изначально он создавался скорее как исследование чисто ленивых функциональных языков, а не распределенных систем) - единственный язык, который имеет статическую типизацию и предлагает абстракции на уровне языка (из-за отсутствия точнее) в распределенных вычислениях.
Мне просто интересно, есть ли неотъемлемые преимущества динамической типизации перед статической типизацией, особенно в контексте предоставления абстракций на уровне языка для программирования распределенных систем.