Size: a a a

Scala User Group

2020 November 25

ΑZ

Αλεχ Zhukovsky in Scala User Group
есть какие-то прям убойные аргументы, в стиле генериков против копипасты?
источник

IK

Ivan Klass in Scala User Group
Αλεχ Zhukovsky
а какие плюсы хкт? А то у меня как раз щас разгвоор с командой одного языка, и меня спрашивают "а че толку с него, все равно нужно делать специализации чтобы не тормозило, а раз так то и обобщать смысла нет если тебя не хачкель"
Так и есть, против копипасты
источник

IK

Ivan Klass in Scala User Group
и композируемость
источник

ΑZ

Αλεχ Zhukovsky in Scala User Group
Ivan Klass
Так и есть, против копипасты
ну нужны какие-то конкретные примеры. Потому что мне говорят "а у нас хкт нет и копипасты тож нет. Врёте всё"
источник

IK

Ivan Klass in Scala User Group
в кратце - можно абстрагироваться от контекста вычислений
источник

ΑZ

Αλεχ Zhukovsky in Scala User Group
единственное что мне в голову приходит, можно писать абстрагированный от той же асинхронности код:

Foo[M]: M[Int] = ...

Foo[Id]
Foo[Async]
источник

ΑZ

Αλεχ Zhukovsky in Scala User Group
но этого мало
источник

IK

Ivan Klass in Scala User Group
type MyF[A] = IO[Either[MyErr, A]]
источник

IK

Ivan Klass in Scala User Group
type MyF[A] = State[MyState, A]
Foo[MyF]
источник

IK

Ivan Klass in Scala User Group
type MyF[A] = Reader[MyEnvironment, A]
источник

ΑZ

Αλεχ Zhukovsky in Scala User Group
я москвина на степике всего прослушал, я прекрасно представляю себе и зачем MTL нужен икак это все делается. Вопрос именно в том, как для обычного среднего джависта получить с этого пользу. Как пример, если из СТД языка уйдет дублирование апишек вызванное тем что без хкт их не обобщить, то это профитно
источник

IK

Ivan Klass in Scala User Group
Αλεχ Zhukovsky
я москвина на степике всего прослушал, я прекрасно представляю себе и зачем MTL нужен икак это все делается. Вопрос именно в том, как для обычного среднего джависта получить с этого пользу. Как пример, если из СТД языка уйдет дублирование апишек вызванное тем что без хкт их не обобщить, то это профитно
Синтаксис котов используете?
источник

ΑZ

Αλεχ Zhukovsky in Scala User Group
ну лично мне синтаксис не важен, я все равно его странслирую во что мне нужно. Но ML воспринимать проще
источник

IK

Ivan Klass in Scala User Group
ну типа (aO: Option[A], bO: Option[B]).mapN { case (a, b) => ... } ?
источник

S

Saitama in Scala User Group
Αλεχ Zhukovsky
я москвина на степике всего прослушал, я прекрасно представляю себе и зачем MTL нужен икак это все делается. Вопрос именно в том, как для обычного среднего джависта получить с этого пользу. Как пример, если из СТД языка уйдет дублирование апишек вызванное тем что без хкт их не обобщить, то это профитно
Оч сложно. В моем проекте челик сказал "все эти технологии cats оч сырая хрень"
источник

S

Saitama in Scala User Group
чтож тут с ними поделаешь
источник

S

Saitama in Scala User Group
/shrug
источник

IK

Ivan Klass in Scala User Group
Saitama
Оч сложно. В моем проекте челик сказал "все эти технологии cats оч сырая хрень"
насттолько сырая, что версия 2.2.0 бинарна совместима с 1.0 и куча scala-либ на них завязаны :)
источник

IK

Ivan Klass in Scala User Group
Αλεχ Zhukovsky
ну лично мне синтаксис не важен, я все равно его странслирую во что мне нужно. Но ML воспринимать проще
Я к тому, что синтаксис появляется для Option, Vector, Whatever  вне зависимости от их внутреннего типа. Без HKT такое описать очень сложно, а так - Applicative[F[_]] - пожалуйста
источник

S

Saitama in Scala User Group
Ivan Klass
насттолько сырая, что версия 2.2.0 бинарна совместима с 1.0 и куча scala-либ на них завязаны :)
эт к тому, что убедить среднего джависта, особенно старого, сложно.
источник