Здравствуйте, Cyberax, Вы писали:
C>Они кривые. Скажем, для них нет конструкторов и вообще их инициализация неудобна. Diamond-проблему trait'ы в Scala никак не решают, а просто задают детерминированный механизм разрешения конфликта.
C>Так что в Kotlin поступили правильно — взяли обычное множественное наследование, убрав разницу между интерфейсом и классом.
Справидливости ради надо заметить, что их множественное наследование так же требует ручного разрешения конфликтов. Если в у двух наследников есть один и тот же метод, то нужно его обязательно переопределить.
C>>>7) Именованные параметры, A>>Для кэйс классов в Скале поддерживаются даже дефолтные значения и копирование с изменением всего нескольких параметров, например C>Case-классы я вообще в принципе ненавижу. Это запредельная кривость.
А что ты предлагаешь? Варианты/объеденения как в классихческих ФП?
C>В Scala PM на практике требует использования case-классов. В Kotlin оно реализовано, как я вижу, через деструктурирующие функции, в том числе для обычных бинов.
По-моему ты ошибаешься. В Kotlin точно так же описываются классы с неявным конструктором, что аналогично кейс-классам (вид в профиль).
C>>>В целом, супер! Жду релиза. A>>Скала у всех на слуху, а взлетает долго. Мне кажется этот ещё дольше будет взлетать. C>Scala слишком кривая местами.
Например?
C>Kotlin выглядит как почищенная от мусора Scala.
Во многом так оно и есть. В прочем, местами перечистили. Лябды какие-то кривенькие.
C>Я, как программист на Scala, читаю программы на Kotlin вообще сразу — всё знакомое. Но при этом ВСЕ мои проблемы в Скале исправлены в Котлине.
Дык описал бы эти проблемы и то как они решены в Kotlin.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.