Зачем? В скала апи очень часто торчат имплиситы, их из жавы звать дико неудобно, если проектировать апи с нцеливанием на жаву, можно сделать так чтобы оно легко звалось, хороший пример тут akka actors
Чтобы оставаться в рамках допустимой производительности
Есть 100500 способов лёгким движением руки запороть производительность, так что выносить это в типы - ну как-то перебор. А так можно например сделать на входе require(list is RandomAccess), или адаптироваться к этому, как алгоритмы в jdk.
Зачем? В скала апи очень часто торчат имплиситы, их из жавы звать дико неудобно, если проектировать апи с нцеливанием на жаву, можно сделать так чтобы оно легко звалось, хороший пример тут akka actors
Есть 100500 способов лёгким движением руки запороть производительность, так что выносить это в типы - ну как-то перебор. А так можно например сделать на входе require(list is RandomAccess), или адаптироваться к этому, как алгоритмы в jdk.