Size: a a a

2020 March 08

DS

Doge Shibu in rust_offtopic
Vabka
окей показывай в обратную
В обратную можно даже без примера, хватит общих соображений.

Если мы хотим сохранить систему типов скалы и получить плюсы от шарпового рантайма со структурами и честным дженериками, то нам придется придумывать схему компиляции, когда у нас обычные дженерик типы будут компилится обычным шарповым способом, а вот скаловская хрень - стиранием.

Встанет вопрос, как эти два способа дружить в рантайме. Получается, что при генерации кода классов, методов и вызово метода придется отслеживать вызываем ли мы скаловский reified дженерик тип или скаловский стертый дженерик тип.

Что сильно усложнит бэкенд компилятора и не факт, что сдружится с полной по Тьюрингу скаловской системой типов.
источник

B

Bogdan in rust_offtopic
Dollar Føølish
Потому что джависты не смогут использовать скаловские либы, слишком немпривычно
просто компиятор генерит кучу всякого мусора, который с джавы видно а со скалы нет
источник

EG

Emmanuel Goldstein in rust_offtopic
Doge Shibu
В обратную можно даже без примера, хватит общих соображений.

Если мы хотим сохранить систему типов скалы и получить плюсы от шарпового рантайма со структурами и честным дженериками, то нам придется придумывать схему компиляции, когда у нас обычные дженерик типы будут компилится обычным шарповым способом, а вот скаловская хрень - стиранием.

Встанет вопрос, как эти два способа дружить в рантайме. Получается, что при генерации кода классов, методов и вызово метода придется отслеживать вызываем ли мы скаловский reified дженерик тип или скаловский стертый дженерик тип.

Что сильно усложнит бэкенд компилятора и не факт, что сдружится с полной по Тьюрингу скаловской системой типов.
Но подожди, в джаве дженерики тоже не reified
источник

DS

Doge Shibu in rust_offtopic
Emmanuel Goldstein
Но подожди, в джаве дженерики тоже не reified
В джаве как раз всё стирается, поэтому скала там тоже всё стирает и у неё всё хорошо
источник

EG

Emmanuel Goldstein in rust_offtopic
Doge Shibu
В джаве как раз всё стирается, поэтому скала там тоже всё стирает и у неё всё хорошо
Нет же
источник

DF

Dollar Føølish in rust_offtopic
Да
источник

DS

Doge Shibu in rust_offtopic
(Кроме случаев со specialized аннотацией)
источник

V

Vabka in rust_offtopic
Doge Shibu
В обратную можно даже без примера, хватит общих соображений.

Если мы хотим сохранить систему типов скалы и получить плюсы от шарпового рантайма со структурами и честным дженериками, то нам придется придумывать схему компиляции, когда у нас обычные дженерик типы будут компилится обычным шарповым способом, а вот скаловская хрень - стиранием.

Встанет вопрос, как эти два способа дружить в рантайме. Получается, что при генерации кода классов, методов и вызово метода придется отслеживать вызываем ли мы скаловский reified дженерик тип или скаловский стертый дженерик тип.

Что сильно усложнит бэкенд компилятора и не факт, что сдружится с полной по Тьюрингу скаловской системой типов.
а легко получить - вот при компиляции мы разрулили и всё ок, профит получен. От валуе-типов придётся отказаться, тк они не любят боксинг (либо придётся им ввести спец ограничения).
А вот закрытый женерик с точки зрения рантайма - это самый обычный тип, а экземпляр открытого женерика ты не получишь
источник

DS

Doge Shibu in rust_offtopic
Да, в джаве дженерики не существуют в рантайме. Скаловские дженерики тоже, часть информации о них можно получить, если обьявить имплисит Manifest, но это opt-in штука.
источник

V

Vabka in rust_offtopic
короче реализовать можно, но думать при написании такой скалы придётся чуть больше
источник

V

Vabka in rust_offtopic
а теперь вопрос. А зачем?
источник

DF

Dollar Føølish in rust_offtopic
Кек
источник

DF

Dollar Føølish in rust_offtopic
То-то форк скалы закрыли под дотнет , думать просто не смогли
источник

AZ

Alex Zhukovsky in rust_offtopic
Vabka
короче реализовать можно, но думать при написании такой скалы придётся чуть больше
я не понял. Вот пример выше показывали. Как он в шарпе будет выглядеть?
источник

AZ

Alex Zhukovsky in rust_offtopic
trait ~>[F[_], G[_]] {
 def apply[A](f: F[A]): G[A]
}

Какому интерфейсу в сишарпе это соответствует:?
источник

V

Vabka in rust_offtopic
Alex Zhukovsky
я не понял. Вот пример выше показывали. Как он в шарпе будет выглядеть?
который с тильдой? А его не должно быть в шарпе видно
источник

V

Vabka in rust_offtopic
ну и я его прочитать не могу, так что хз
источник

AZ

Alex Zhukovsky in rust_offtopic
вроде это натуральное преобразование
источник

V

Vabka in rust_offtopic
Alex Zhukovsky
вроде это натуральное преобразование
стало понятно ещё меньше
источник

V

Vabka in rust_offtopic
спасибо
источник